hibernate - 如何从我的审核表中删除条目?

标签 hibernate hibernate-envers audit-tables

我目前正在使用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/

相关文章:

java - PropertyPlaceholderConfigurer 与 Hibernate.cfg.xml

java - 使用来自 Hibernate 实体的现有数据填充 envers 修订表

java - @CreatedDate 注释不适用于 mysql

database-design - 审计表数据库设计 : Does creating Audit Tables for Join Tables make sense

java - 恩弗斯 : error mapping a collection with deleted entities

java - hibernate 恩维尔 : @AuditJoinTable rows missing

java - 如何在 @EmbeddedId 属性中使用 Hibernate 的 @Filter 注释

mysql - 如何使用 Hibernate 查询语言实现行级锁定?

java - 无法使用@IdClass 转换实体中的请求元素

java - Envers在没有审计记录时在ValidityAuditStrategy中抛出RuntimeException(表分区)