提问者:小点点

手动添加审核入口到Hibernate Envers


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

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

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


共1个答案

匿名用户

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

默认值(true)告诉Envers要求Hibernate使用基于本机的主键创建REVINFO表,该主键将是IDENTITYSEQUENCE,具体取决于您的数据库平台。如果您查看数据库中REVINFO的表定义,您应该能够推断出此信息。

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