我正在使用 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/