我目前正在使用Hibernate Envers。
如何删除审核表中与我要删除的实体相关的条目?我的实体与其他实体没有任何关系。
我发现必须在onPostDelete自定义侦听器的方法中执行此操作:
onPostDelete
import org.hibernate.envers.event.AuditEventListener; import org.hibernate.event.PostCollectionRecreateEvent; import org.hibernate.event.PostDeleteEvent; import org.hibernate.event.PostInsertEvent; import org.hibernate.event.PostUpdateEvent; import org.hibernate.event.PreCollectionRemoveEvent; import org.hibernate.event.PreCollectionUpdateEvent; public class MyListener extends AuditEventListener { ... @Override public void onPostDelete(PostDeleteEvent arg0) { // TODO Auto-generated method stub super.onPostDelete(arg0); } ... }
我已经阅读了文档,论坛以及许多内容,但我无法弄清楚。也许这是不可能的,我不知道。
有人做过吗?
好吧,对于那些想知道的人,我已经完成了50%。
感谢Hibernate Envers的创建者Adam Warski,我引用:
“ id”是实体ID的hibernate关键字,无论名称是什么;对于审核实体,该ID是复合的,称为“ originalId”。尝试:
"delete from full.package.name.User_AUD u where u.originalId.id = :userid"
但是现在,我也想删除revinfo表中与audit表相关的条目。
如果有人有线索,请告诉我。