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