目前,我们正在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
是不再存在的类)。
那么有没有办法让它工作呢?