Hibernate Envers - 在启动时填写审计表

Posted

技术标签:

【中文标题】Hibernate Envers - 在启动时填写审计表【英文标题】:Hibernate Envers - fill audit tables on startup 【发布时间】:2017-02-26 10:13:58 【问题描述】:

我在 Spring + Hibernate 中编写了一个应用程序,它使用 Hibernate Envers 来跟踪业务数据的历史记录。

在启动时,我必须从 SQL 脚本加载大量数据(而不是使用 Hibernate API!)。毕竟我看不到审计表中跟踪的任何数据,可能是因为我没有使用 Hibernate API。

您知道如何使用通过 SQL 插入创建的数据来完成审计表吗?有什么简单的方法可以自动完成吗?我可以使用 Hibernate Envers 或任何其他支持 Envers 的技术来做到这一点吗?

【问题讨论】:

【参考方案1】:

Envers 目前没有一种自动方式来审核在 Hibernate 范围之外添加或更改的记录。但是,如果您愿意,可以让您的导入脚本将相关行插入到您的 Envers 架构中。

【讨论】:

是的,要同时更新两种类型的 SQL 脚本来更新业务和历史模式,这会很烦人。 是否有任何特殊原因需要通过 SQL 脚本加载数据而不是通过 Hibernate 抽取这些信息?这样做肯定会消除对双重脚本的需求。

以上是关于Hibernate Envers - 在启动时填写审计表的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate Envers:初始化 Envers 代理

Hibernate Envers 禁用 RevisionListener

审计:对子修改的父实体修订(Javers/Envers/... + Hibernate)

Hibernate-Envers:审计动态组件

Hibernate Envers - 添加历史数据

Spring 3.x 和 Hibernate Envers