我从休眠的Envers 3.6移植到Envers 4.0。这个新版本没有 AuditEventListener 。旧版本要求:listeners

我找不到如何配置新版本。

最佳答案

在版本4.0中:

<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.AuditEventListener" />
  <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>

无需在persistence.xml中添加它。

这些事件监听器现在已自动注册。

检查:http://www.warski.org/blog/2011/04/envers-and-hibernate-4-0-0-alpha2-automatic-listener-registration/

关于jboss 7(envers 4)无法加载类org.hibernate.envers.event.AuditEventListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7280855/

10-10 19:27