我从休眠的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/