当前位置: 首页 > 面试题库 >

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

萧德庸
2023-03-14
问题内容

我目前正在使用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”是实体ID的hibernate关键字,无论名称是什么;对于审核实体,该ID是复合的,称为“ originalId”。尝试:

"delete from full.package.name.User_AUD u where u.originalId.id = :userid"

但是现在,我也想删除revinfo表中与audit表相关的条目。

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



 类似资料:
  • 我有一个使用ef核心代码优先方法构建的项目的审计机制。我已经在“OnModelCreating”函数中为一些表设置了“deleteBhavior”属性以级联。当我删除一个实体时,另一个实体会通过级联删除行为自动删除。现在一切都很好,我需要获取所有已删除的实体,但我不能。ChangeTracker不包含级联删除的实体。如何获取级联删除的值?有没有办法做到这一点?

  • 问题内容: 我想从表中删除约束。我的查询是: 但我得到一个错误: -您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’constraint ‘ 附近使用正确的语法 问题答案: Mysql具有用于删除外键约束的特殊语法:

  • 我想从表中删除约束。我的疑问是: 但我有一个错误: -您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行“constraint”附近使用的正确语法

  • 问题内容: 我错误地 从Windows计算机中 删除了Java文件夹 。 现在我在各种插件以及所有插件中都遇到了问题,它要求我 下载最新的JRE 。当我尝试这样做时,它说 JRE已经存在 ,您是否要删除旧的JRE并安装新的JRE?我说是,然后给我错误“ 1723”。 简而言之, JRE不会被卸载 。 我重新安装了Java SDK,但是仍然无法正常工作。我再次卸载了Java SDK,并尝试卸载JRE

  • 问题内容: 我有一个这样的 LoginTime 表: 我想删除的最后一条记录。用户的最后一条记录可以通过识别。 如何使用一个查询执行此操作。 问题答案: 您需要按user_id(例如WHERE user_id = 1)过滤表,然后按时间(例如ORDER BY datetime)对其进行排序,然后将查询限制为一项(例如LIMIT1),然后删除此查询的结果。最后,您将获得如下查询:

  • 我在Java中有一个< code>HashMap: 我需要的是删除重复条目(“1”,1)[当键和值都重复时]。我搜索并只找到了“如何删除重复的键/值”。有人能帮忙吗?