0

私はMySQL5.5でSpring3.0+ JPA2 + Hibernate4.1を使用しています。監査証跡の目的でテーブルに5つのフィールドを記録しようとしています-lastModifiedByUser、lastModifiedTime、createdByUser、createdTime、isActive

テーブルからデータを削除するのではなく、isActivefalseとしてマークするだけです。

これらの監査フィールドをテーブルに記録するのに役立つ最良のツールは何ですか?特にユーザー名の変更/作成も記録されているので、DBトリガーは最善のアイデアではないかと思います。

4

2 に答える 2

0

Enversをチェックしてください。これはこのためだけに構築されており、Hibernate4.xの一部です。@Auditedアノテーションをクラスに追加するだけで、エンティティのバージョン管理が自動的に処理されます。

于 2012-10-20T04:34:08.377 に答える
0

最近のツールについてはよくわかりませんが、昔はインターセプターを使用してそれを行うことができました。

Entityクラスにも監査列をマップすることをお勧めします。インターセプターを定義して、エンティティオブジェクトをデータベースに永続化する前に、エンティティオブジェクトにこれらの属性を設定します。

監査インターセプターの詳細のサンプルは、hibernate:Hibernate Interceptors:Auditで入手できます。必要なことを達成するための手順に従ってください。

于 2012-10-20T04:35:23.480 に答える