tag pom plugin example ejemplo central basedir hibernate dependencies maven ehcache

hibernate - pom - maven parent tag



¿Cuáles son las dependencias de Maven para usar hibernación, anotaciones de hibernación y ehcache? (3)

Me gustaría actualizar mi pom.xml de Maven con las últimas dependencias de hibernación, hibernación-anotación y ehcache.

Leí la página de descarga de hibernación y la página de descarga de ehcache. Todos mis intentos de interpretarlo parecen fallar. ¿Alguien puede escribir el fragmento que debería ir a pom.xml?

Página de descarga de hibernación críptica: http://hibernate.org/downloads

Página de descarga de ehcache Cryptic: http://www.terracotta.org/dl/ehcache-oss-download-catalog

Aquí está lo que tengo hasta ahora:

<properties> <hibernate.version>3.6.0.Final</hibernate.version> </properties> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> <exclusion> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>${hibernate.version}</version> <exclusions> <exclusion> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.2.0</version> <type>pom</type> </dependency> </dependencies> <repositories> <repository> <id>codehaus-repository</id> <name>Codehaus</name> <url>https://nexus.codehaus.org/content/repositories/releases/</url> <layout>default</layout> </repository> <repository> <id>java.net</id> <url>http://download.java.net/maven/1</url> <layout>legacy</layout> </repository> <repository> <id>central</id> <name>Maven Repository Switchboard</name> <layout>default</layout> <url>http://repo1.maven.org/maven2</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>sonatype-ehcache</id> <url>http://oss.sonatype.org/content/repositories/sourceforge-releases</url> <layout>default</layout> </repository> <repository> <id>JBoss Repository</id> <url>https://repository.jboss.org/nexus/content/groups/public</url> <layout>default</layout> </repository> </repositories>

Lo sé, parece un gran lío, porque parece que no entiendo, donde se almacenan todas las dependencias.

Lo anterior falla con:

Invocation of init method failed; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

Actualización: Pascal, tu respuesta es muy clara y bien explicada. Sin embargo, hibernate todavía falla en el inicio.

  1. sl4j lanzó errores, que desaparecieron al agregar:

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency>

  2. Hay muchos ejemplos de esta advertencia:

    g in the two-phase commit! 1797 [main] WARN net.sf.ehcache.hibernate.AbstractEhcacheRegionFactory - No Tr ansactionManagerLookup found in Hibernate config, XA Caches will be participatin

  3. Además, este error hace que todo falle:

    Causa relacionada:

    org.springframework.beans.factory.BeanCreationException: Error creating bean wit h name ''financialDAO'' defined in ServletContext resource [/WEB-INF/config/applic ationContext-database.xml]: Cannot resolve reference to bean ''transactionManager '' while setting bean property ''transactionManager''; nested exception is org.spri ngframework.beans.factory.BeanCreationException: Error creating bean with name '' transactionManager'' defined in ServletContext resource [/WEB-INF/config/applicat ionContext-database.xml]: Cannot resolve reference to bean ''sessionFactory'' whil e setting bean property ''sessionFactory''; nested exception is org.springframewor k.beans.factory.BeanCreationException: Error creating bean with name ''sessionFac tory'' defined in ServletContext resource [/WEB-INF/config/applicationContext-dat abase.xml]: Invocation of init method failed; nested exception is java.lang.Null PointerException at org.springframework.beans.factory.support.BeanDefinitionValueResolver .resolveReference(BeanDefinitionValueResolver.java:328)

Para confirmar, esta es la configuración del resorte:

<!-- Enable EHCache --> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.use_query_cache">false</prop> <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop> <prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>

Actualización: esta parece ser la última excepción a la que la hibernación se atasca:

Caused by: java.lang.NullPointerException at net.sf.ehcache.hibernate.HibernateUtil.loadAndCorrectConfiguration(HibernateUtil.java:48) at net.sf.ehcache.hibernate.EhCacheRegionFactory.start(EhCacheRegionFactory.java:79) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:236) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)


Puede utilizar este pom.xml si está integrando Spring 3 con hibernate 3

<properties> <org.springframework.version>3.0.5.RELEASE</org.springframework.version> </properties> <dependencies> <!-- Core utilities used by other modules. Define this if you use Spring Utility APIs (org.springframework.core.*/org.springframework.util.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Expression Language (depends on spring-core) Define this if you use Spring Expression APIs (org.springframework.expression.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Bean Factory and JavaBeans utilities (depends on spring-core) Define this if you use Spring Bean APIs (org.springframework.beans.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Aspect Oriented Programming (AOP) Framework (depends on spring-core, spring-beans) Define this if you use Spring AOP APIs (org.springframework.aop.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Application Context (depends on spring-core, spring-expression, spring-aop, spring-beans) This is the central artifact for Spring''s Dependency Injection Container and is generally always defined --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Various Application Context utilities, including EhCache, JavaMail, Quartz, and Freemarker integration Define this if you need any of these integrations --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Transaction Management Abstraction (depends on spring-core, spring-beans, spring-aop, spring-context) Define this if you use Spring Transactions or DAO Exception Hierarchy (org.springframework.transaction.*/org.springframework.dao.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- JDBC Data Access Library (depends on spring-core, spring-beans, spring-context, spring-tx) Define this if you use Spring''s JdbcTemplate API (org.springframework.jdbc.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Object-to-Relation-Mapping (ORM) integration with Hibernate, JPA, and iBatis. (depends on spring-core, spring-beans, spring-context, spring-tx) Define this if you need ORM (org.springframework.orm.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Object-to-XML Mapping (OXM) abstraction and integration with JAXB, JiBX, Castor, XStream, and XML Beans. (depends on spring-core, spring-beans, spring-context) Define this if you need OXM (org.springframework.oxm.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Web application development utilities applicable to both Servlet and Portlet Environments (depends on spring-core, spring-beans, spring-context) Define this if you use Spring MVC, or wish to use Struts, JSF, or another web framework with Spring (org.springframework.web.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Spring MVC for Servlet Environments (depends on spring-core, spring-beans, spring-context, spring-web) Define this if you use Spring MVC with a Servlet Container such as Apache Tomcat (org.springframework.web.servlet.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Spring MVC for Portlet Environments (depends on spring-core, spring-beans, spring-context, spring-web) Define this if you use Spring MVC with a Portlet Container (org.springframework.web.portlet.*) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc-portlet</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Support for testing Spring applications with tools such as JUnit and TestNG This artifact is generally always defined with a ''test'' scope for the integration testing framework and unit testing stubs --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework.version}</version> <scope>test</scope> </dependency> <!-- Hibernate resources --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.6.7.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.0.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>3.3.0.ga</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.3.1.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.3.2.GA</version> </dependency> <!-- EhCache --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>2.7.7</version> </dependency> <!-- Taglibs --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>20030825.184428</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>20030825.183949</version> </dependency> <!-- Log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> <type>jar</type> <exclusions> <exclusion> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> </dependencies>

Y si quieres diferentes versiones de hibernación puedes consultar here


Si realmente te refieres a las versiones finales de hibernate-anotaciones (y no hibernate-entitymanager) y ehcache, entonces necesitarás lo siguiente:

<project> ... <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.0.Final</version> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.2.0</version> </dependency> ... </dependencies> <repositories> <repository> <id>repository.jboss.org-public</id> <name>JBoss repository</name> <url>https://repository.jboss.org/nexus/content/groups/public</url> </repository> </repositories> ... </project>

A partir de Hibernate 3.6, el soporte de JDK 1.4 se ha eliminado y las Anotaciones de Hibernate se han vuelto a fusionar en Core.

Me refiero a Hibernate EntityManager, luego reemplace hibernate-core por hibernate-entitymanager en el fragmento de hibernate-entitymanager anterior.

Con respecto a EHCache, ehcache-core debería proporcionar todo lo que necesita (incluidas las implementaciones del "nuevo" SPI de almacenamiento en caché de Hibernate 3.3 / 3.5 con su CacheRegionFactory ). Entonces, como se documented :

documented

Hibernate 3.3 y superior

ATENCIÓN HIBERNATE 3.2 USUARIOS

Asegúrese de anotar el cambio en AMBOS el nombre y el valor de la propiedad.

Utilizar:

<property name="hibernate.cache.region.factory_class"> net.sf.ehcache.hibernate.EhCacheRegionFactory</property>

por ejemplo, la creación, o

<property name="hibernate.cache.region.factory_class"> net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</property>

para forzar a Hibernate a usar un singleton de Ehcache CacheManager.

Seguimiento: Para responder a su actualización:

sl4j lanzó errores, que desaparecieron al agregar (...)

Bueno, no puedo adivinar qué marco de registro está utilizando, siempre que el enlace de su elección se dejó como un ejercicio para el lector :)

Hay muchos ejemplos de esta advertencia (...)

Solo recibo una WARNING cuando se ejecuta en un entorno que no es JTA. Si ese es su caso (un entorno no JTA), consideraría la WARNING como normal. Si ese no es tu caso, mira la documentación sobre JTA .

Además, este error hace que todo falle.

De alguna manera, esta es una pregunta diferente (pero parece que SessionFactory no se inicializa correctamente, activa el registro para ver por qué) y sugiero publicar una nueva pregunta específica de primavera.


<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.2.Final</version> </dependency>