如何从审计表中删除条目?

Lau*_*t T 7 hibernate audit-tables hibernate-envers

我目前正在使用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);
  }
  ...

}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档,论坛,很多东西,但我无法弄清楚.也许这是不可能的,我不知道.

有人曾经这样做过吗?

Lau*_*t T 4

好吧,对于那些想知道的人来说,我已经完成了 50%。

感谢 Hibernate Envers 的创建者 Adam Warski,我引用:

“id”是一个 hibernate 关键字,表示实体的 id,无论名称是什么;对于审计实体,ID 是复合的,称为“originalId”。尝试:

"delete from full.package.name.User_AUD u where u.originalId.id = :userid" 
Run Code Online (Sandbox Code Playgroud)

但现在,我还想删除 revinfo 表中与审计表相关的条目。

如果有人有线索,请告诉我。