1

spring 3.1、hibernate 4 を使用して新しいプロジェクトを開始していますが、アプリケーションでのアクティビティを追跡する必要があります。アクティビティ追跡の例who changed what? from what to what?at which time?、休止状態の anvers に関する入門チュートリアルを読みました。私には、まったく取得していない場合を除き、アクティビティ追跡よりもデータ履歴のようです。

その *_aud テーブルにカスタム フィールドを追加して、さらにユーザー定義のテーブルを挿入する方法はありますか。、、、のように、独自の種類のフィールドがあります。基本的に、作成date_createdlast_modifiedたテーブルに、を追加したいと思いますcreated_byupdated_bydatabeforedataaftercreatedbyupdatedby

それを行う方法はありますか。はいの場合は、適切なリソースを教えてください。

読んでくれてありがとう 。

4

1 に答える 1

2

Enversでは、各「本番」テーブルには、エンティティの履歴状態を格納する対応する*_AUDテーブルがあります。org.hibernate.envers.DefaultRevisionEntityリビジョン番号、タイムスタンプ、カスタムのユーザー定義列を含むグローバルREVINFO()テーブルもあります。DefaultRevisionEntityを拡張する方法を示す例は、ドキュメントにあります。現在、* _ AUDテーブルをカスタマイズする可能性はありませんが、Enversはあなたが尋ねたすべての質問に答える必要があります。

  1. 誰が何を変えたの?-ユーザー資格情報をREVINFOテーブルに保存します。
  2. 何から何へ?-それはかなり一般的な質問です:)。探索org.hibernate.envers.AuditReaderしてみてくださいorg.hibernate.envers.query.AuditQueryCreator
  3. 何時に?-タイムスタンプはREVINFOテーブルに保存されます。このタイムスタンプは、ユーザーが変更をコミットした時刻を反映しています。
于 2012-06-05T17:43:51.297 に答える