如何从我的审计表中删除条目? [英] How to delete entries from my audit table?
问题描述
如何删除与我要删除的实体相关的审计表中的条目?我的实体与其他实体没有任何关系。
我发现我必须在 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自动生成的方法存根
super.onPostDelete(arg0);
}
...
}
我已阅读文档,论坛,许多事情,但我无法弄清楚。也许这是不可能的,我不知道。
有人曾经这样做过吗?
好吧,对于那些想知道的人,我已经完成了50%。
感谢Hibernate Envers的创造者Adam Warski,我引用:
$ b
id是一个实体的id
的hibernate关键字,不管名字是什么;
在审计实体的情况下,id是
合成并被称为originalId。
Try:
从full.package.name.User_AUD中删除u.originalId.id =:userid
但是现在,我还想删除与审计表在我的revinfo表中。
如果有人有线索,请告诉我。
I am currently working with Hibernate Envers.
How to delete entries in the audit table related to the entity I want to delete? My entity has no relation with other entities.
I figured out that I have to do that in onPostDelete
method of my custom listener:
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);
}
...
}
I've read the documentation, forums, many things but I can't figure it out. Maybe it's not possible, I don't know.
Has someone ever done this before?
Ok I'm 50% done with this for those who want to know.
Thanks to the creator of Hibernate Envers, Adam Warski, I quote:
"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"
But now, I also would like to delete entries related to audit table in my revinfo table.
If someone has a clue, let me know.
这篇关于如何从我的审计表中删除条目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!