如何从我的审计表中删除条目? [英] How to delete entries from my audit table?

查看:129
本文介绍了如何从我的审计表中删除条目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



如何删除与我要删除的实体相关的审计表中的条目?我的实体与其他实体没有任何关系。



我发现我必须在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆