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 ListgetAllProducts() { 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"); Listlist=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