手动更新hibernate enver审计表的属性



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

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

示例:我有一个员工表,其中包含id(int), name(string), age(int), address(string)。我有审计表与id,名称,年龄,地址,revtype, revid创建。在我的审计表中,将为每个ADD、MOD、DEL添加新行。但是对于版本DEL,只插入id、revtype和revid,其他字段为空。是否可以用删除版本的其他字段更新此审计表?

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

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

最新更新