Maven Hibernate和Envers-依赖关系



我在使用Envers时遇到了依赖关系问题。

在Envers世界的某个地方,存在对类org.hibernate.integrator.spi.Integrator的依赖。这可以在hibernate-core.4.1.7.Final 中找到

然而,如果我使用hibernate-core.4.1.7.Final,那么我在org.hibernate.event.PreCollectionUpdateEventListener上得到了一个依赖性问题(NoClassDefFoundError),可以在hibernate-core.3.6.10.Final中找到。

所以我有点塞了,因为Maven不会把这两个版本都放在类路径上。

任何有解决方案/想法/解决方案的聪明人。

谢谢Adam

更新:谢谢你的回复@adamw,但这不起作用。让我更深入地了解一下我所做的:

build.xml:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>4.1.7.Final</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-envers</artifactId>
  <version>4.1.7.Final</version>
</dependency>

然后在我的实体代码中输入:

@Audited
@Entity
public class Company
...

现在,当我运行集成测试时,不会创建_AUD表。

因此,我将其添加到persistance.xml文件中(如此处所示):

<properties>
  <property name="hibernate.ejb.event.post-insert" value="org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener" />
  <property name="hibernate.ejb.event.post-update" value="org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.Audit.EventListener" />
  <property name="hibernate.ejb.event.post-delete" value="org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener" />
  <property name="hibernate.ejb.event.pre-collection-update" value="org.hibernate.envers.event.AuditEventListener" />
  <property name="hibernate.ejb.event.pre-collection-remove" value="org.hibernate.envers.event.AuditEventListener" />
  <property name="hibernate.ejb.event.post-collection-recreate" value="org.hibernate.envers.event.AuditEventListener" />
</properties>

然后我得到一个Spring错误,导致:

javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build EntityManagerFactory

那么我该如何解决这个问题呢?其他人在使用Spring、Envers和Maven时有这个问题吗?

哦,顺便说一下。在properties.xml代码段中指定的侦听器在任何一个jar文件依赖项中都不存在。

好吧,你需要将Hibernate 4.1.7与Envers 4.1.7一起使用,或者将Hibernat 3.6.10与Enverss 3.6.10一起使用:)

更新:

现在您使用了错误的文档:)。从4.x开始,您就不需要侦听器了。请参阅此处:http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/html/ch05.htmlhttp://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html

最新更新