java - 手动将审计条目添加到 Hibernate Envers

标签 java hibernate-envers

我正在使用 Hibernate Envers 注释审核 Java 对象,但初始对象创建直接在使用 Pentaho (ETL) 的数据库中进行。

我想使用 ETL 创建对象,并将表条目添加到 Envers 生成的 object_AUD 和 REVINFO 表中。

我一直在尝试从 REVINFO 表中找到 REV 列的生成策略,但我肯定找错了地方。有人可以帮助我找到一种有效的生成策略,以便我可以手动将记录插入到审核表中,而不会在将来造成可能的冲突或奇怪的行为吗?

最佳答案

您寻求的内容取决于您是否将应用程序配置为采用 org.hibernate.envers.use_revision_entity_with_native_id 的默认值。

默认值 (true) 告诉 Envers 要求 Hibernate 使用基于 native 的主键创建 REVINFO 表,该主键可以是 IDENTITY code> 或 SEQUENCE 取决于您的数据库平台。如果您查看数据库中 REVINFO 的表定义,您应该能够推断出此信息。

如果使用 false 配置此属性,Envers 将构建自己的序列元数据并将其提供给 Hibernate。该序列称为 REVISION_NUMBER,并存储在名为 REVISION_GENERATOR 的表中。序列初始化为1,默认加1。

关于java - 手动将审计条目添加到 Hibernate Envers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052968/

相关文章:

java - Scala NoClassDefFoundError

java - 如何模拟 StorageOptions.newBuilder()

java - 如何自定义 Hibernate EnVers

java - Hibernate envers spring web app如何记录用户名

java - Hibernate Envers - 获取日期之间的修订和对象

spring - Hibernate Envers 未找到 JPA 事务 :

java - Vaadin 按钮单击不会立即执行

java - 枚举单例,由接口(interface)引用,由字符串名称引用实例

java - 使用 Java 8 Stream API 时如何移至循环中的下一个值

java - Hibernate ENVERS 类加载问题