我目前正在使用Hibernate Envers。
如何删除审核表中与我要删除的实体相关的条目?我的实体与其他实体没有关系。
我发现必须在自定义监听器的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" is a hibernate keyword for the id of an entity, whatever the names is; in case of audit entities, the id is composite and is called "originalId". Try:
"delete from full.package.name.User_AUD u where u.originalId.id = :userid"
但是现在,我也想删除我的revinfo表中与audit表相关的条目。
如果有人有线索,请告诉我。
关于hibernate - 如何从我的审核表中删除条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791148/