我正在使用Hibernate Envers注释审核Java对象,但初始对象创建直接在数据库中使用Pentaho(ETL)。
我想使用ETL创建对象,并将表条目添加到Envers生成的object_AUD和REVINFO表。
我一直在尝试从REVINFO表中找到REV列的生成策略,但我一定找错了地方。有人能帮我找到一个有效的生成策略,这样我就可以手动将记录插入到审计的表中,而不会导致将来可能的冲突或奇怪的行为吗?
您所寻求的将取决于您是否将应用程序配置为采用org. hibernate.envers.use_revision_entity_with_native_id
的默认值。
默认值(true
)告诉Envers要求Hibernate使用基于本机的主键创建REVINFO
表,该主键将是IDENTITY
或SEQUENCE
,具体取决于您的数据库平台。如果您查看数据库中REVINFO
的表定义,您应该能够推断出此信息。
如果使用false
配置此属性,Envers将构造自己的序列元数据并将其提供给Hibernate。该序列称为REVISION_NUMBER
,并存储在名为REVISION_GENERATOR
的表中。序列被初始化为1,并以1递增作为默认值。