提问者:小点点

手动更新hibernate envers属性少的审计表


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

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

示例:我有一个包含id(int)、name(string)、age(int)、地址(string)的员工表。我有一个使用id、name、age、地址、rev type、rev d创建的审核表。在我的审核表中,将为每个ADD、MOD、DEL添加新行。但是对于修订DEL,只有id、rev type和rev d被插入,所有其他字段为空。是否可以使用其他字段更新此审核表以删除修订。


共1个答案

匿名用户

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

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