gpt4 book ai didi

Maven Hibernate 和 Envers - 依赖

转载 作者:行者123 更新时间:2023-12-04 05:32:43 29 4
gpt4 key购买 nike

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

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

但是,如果我使用 hibernate-core.4.1.7.Final然后我在 NoClassDefFoundError 上遇到依赖性问题( org.hibernate.event.PreCollectionUpdateEventListener )可以在 hibernate-core.3.6.10.Final 中找到.

所以我有点吃不消,因为 Maven 不会将两个版本都放在类路径上。

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

谢谢
亚当

更新:
感谢@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文件(按照说明 here ):
<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 与 Envers 3.6.10 一起使用 :)

更新:

现在您使用了错误的文档:)。从 4.x 开始你就不需要监听器了。看这里:
http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/html/ch05.html
http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html

关于Maven Hibernate 和 Envers - 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369151/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com