0

目前,我们正在3.6.9.Final为所有 Hibernate 库使用该版本,包括用于审计修订的 Hibernate Envers。

我们想迁移到该4.1.8.Final版本(以使用@Audited(withModifiedFlag = true)其他东西),但适用于 Hibernate Envers。不幸的是,它似乎不起作用。当我修改@Audited实体时,Envers 不会保存修订。

也许是由于听众的定义?在 3.6.9 中,我在hibernate.properties文件中设置了以下属性:

hibernate.ejb.event.post-insert=org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-update=org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-delete=org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.pre-collection-update=org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.pre-collection-remove=org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-collection-recreate=org.hibernate.envers.event.AuditEventListener

据我所知,Envers 4 版不再需要这些声明了。没有它们,我不会出错,但不会创建修订版。我无法重新设置这些声明,因为 v3 和 v4 之间的类不一样(尤其org.hibernate.envers.event.AuditEventListener是不再存在的类)。

那么有没有办法让它工作呢?

4

1 回答 1

0

不,这是不可能的,您必须使用相同的 Hibernate 和 Envers 版本。

于 2013-01-07T08:05:05.487 回答