【问题标题】:Manually update hibernate envers audit table with few properties手动更新具有少量属性的休眠环境审计表
【发布时间】:2021-10-24 08:23:12
【问题描述】:

我在我的 springboot 项目中使用休眠环境。所以审计表将包含所有历史数据,除了删除修订的数据,因为在属性文件中我们没有设置spring.jpa.properties.org.hibernate.envers.store_data_at_delete=true

现在我们要手动更新所有已删除的修订数据。是否可以在休眠环境中使用审计表中的某些字段更新已删除的修订行。

示例:我有带有 id(int)、name(string)、age(int)、address(string) 的员工表。我创建了带有 id、name、age、address、revtype、revid 的审计表。 在我的审计表中,将为每个 ADD、MOD、DEL 添加新行。但是对于修订版 DEL,只有 id、revtype 和 revid 被插入,所有其他字段都为空。是否可以使用其他字段更新此审核表以进行已删除的修订。

【问题讨论】:

    标签: java spring-boot spring-data-jpa hibernate-envers audit-tables


    【解决方案1】:

    技术上可以(如果您能够在删除时确定实体的状态)用每列的状态更新审计表中代表DEL 修订类型的行。

    对于与其他表没有关系的基本实体,此过程非常简单;但是,如果您的实体具有关联或使用中间审计实体表,则需要注意正确更新引用以避免使用 AuditReader 从数据库读取行时出现问题。

    【讨论】:

      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 2017-08-17
      • 2014-03-22
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      相关资源
      最近更新 更多