Spring 3.0 e Hibernate JPA 2.0
Hace unos días me decici a integrar Spring con la implementacion JPA 2.0 de Hibernate. En esta ocasión la versión de spring que usare es la 3.0 de Hibernate 3.6.7 y la base de datos de ejemplo (derby - sample) que se encuentra embebida en Netbeans.
Los jars necesarios para utilizar la implementación JPA de Hibernate, en donde {hibernate-path} es la ruta donde esta descomprimido la distribución final de Hibernate 3.6.7:
{hibernate-path}\lib\jpa\hibernate-jpa-2.0-api-1.0.1.Final.jar
{hibernate-path}\lib\required\antlr-2.7.6.jar
{hibernate-path}\lib\required\commons-collections-3.1.jar
{hibernate-path}\lib\required\dom4j-1.6.1.jar
{hibernate-path}\lib\required\javassist-3.12.0.GA.jar
{hibernate-path}\lib\required\jta-1.1.jar
{hibernate-path}\lib\required\slf4j-api-1.6.1.jar
{hibernate-path}\hibernate3.jar
Como nota aclaratoria es tambien necesario agregar el jar aopalliance.jar para poder utilizar la anotación @Transactional, en este ejemplo no realizaremos un CRUD por esa razón no se incluye.
Y la versión 3.0 de Spring que viene con Netbeans.
Las tablas que utilizare son "Product", "Manufacturer" y "Product_Code", al mapear las tablas con el asistente de Netbeans obtengo sus clases
La unidad de persistencia debera quedar de la siguiente forma:
org.hibernate.ejb.HibernatePersistence org.dani.ejemplo.jpa.dao.ProductCode org.dani.ejemplo.jpa.dao.Product org.dani.ejemplo.jpa.dao.Manufacturer
Creo el acceso a datos para las tablas.
package org.dani.ejemplo.jpa.dao;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import java.util.*;
/**
*
* @author dherrera
*/
public class DerbySampleDAO extends JpaDaoSupport{
public List getAllProducts() {
return getJpaTemplate().find("Select p From Product p");
}
}
Luego procedo a configurar el archivo de configuración de spring
Y la forma de uso sera de la siguiente forma:
package org.dani.ejemplo.jpa;
import java.util.List;
import org.dani.ejemplo.jpa.dao.DerbySampleDAO;
import org.dani.ejemplo.jpa.dao.Product;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
*
* @author dherrera
*/
public class Init {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("/org/dani/ejemplo/jpa/applicationContext.xml");
DerbySampleDAO dao=(DerbySampleDAO) ctx.getBean("dao");
List list=dao.getAllProducts();
for(Product product:list)
System.out.println(product.getDescription());
}
}
Adjunto el código fuente de ejemplo aca.
0 Response to "Spring 3.0 e Hibernate JPA 2.0"
Publicar un comentario