初めて jboss envers を使用していますが、良さそうです。こちらも使いやすそうです。
ただし、問題が発生しました。組み込みの ddl 生成を使用して注釈付きクラスから ddl を作成すると、監査したいクラスだけでなく、すべてのクラスの監査テーブルが作成されます。
たとえば、次のように注釈を付けたクラスがあります。
@Entity
@Table(name="partner")
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public class Partner {
注釈があるため、このクラスには partner_aud テーブルが作成されないと予想されます。
ただし、ddl は partner と partner_aud の両方に対して作成されます。
私は何を間違っていますか?
Ant ビルド構成は次のようになります。
<hibernatetool destdir=".">
<classpath>
<path refid="toolslib" />
<path location="/Users/matt/workspace/new_Pricing_Tool_PoC/lib/slf4j-api-1.5.8.jar" />
<path location="/Users/matt/workspace/new_Pricing_Tool_PoC/lib/slf4j-log4j12-1.5.8.jar" />
<path location="/Users/matt/workspace/new_Pricing_Tool_PoC/bin" />
<fileset dir="new_Pricing_Tool_PoC/lib/">
<include name="*.jar"/>
</fileset>
<pathelement location="classes"/>
<dirset dir="new_Pricing_Tool_PoC/bin">
<include name="**/classes/**"/>
</dirset>
</classpath>
<jpaconfiguration persistenceunit="pricing" />
<hbm2ddl
drop="false"
create="true"
export="false"
outputfilename="new_Pricing_Tool_PoC/db/auto-build.sql"
delimiter=";"
format="true"/>
また、Hibernate が実際に監査テーブルを使用して Partner オブジェクトの過去のリビジョンを保存していることを確認しました。