-1

監査ログ プラグイン ( http://grails.org/plugin/audit-logging )と同じシステムが必要ですが、Java 用です。

Hibernate envers では、各リリースのすべてのデータを保存できます。どのデータが変更されたかはわかりません。変更された値のみを保存します。私の場合、すべての値を保存することは役に立ちません。

ここに私が望むものがあります:

date_event、class_name、old_value、new_value、actor、persited_object_id
2014-12-18; 人; トニー; ジョン; 管理者; 5

要約すると、次の質問に答えたいと思います。何を変えた?いつ ?

どうも

4

2 に答える 2

0

Hibernate 3.x では

リスナーと呼ばれるオプションがあります。Post-Commit を構成できること。追加、変更、および削除されたイベントを受け取ることができます。追加されたイベントでは、追加されたオブジェクトを受け取ることができます。更新されたイベントでは、更新された小道具名、古い値と新しい値を受け取ることができます。Deleted Event では、削除されたオブジェクトを受け取ることができます。

于 2014-12-19T11:18:14.097 に答える
0

HibernateInterceptorを見てください実装方法の例を次に示します。あなたの要件に対して、興味深い方法はonFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types)です。これは、エンティティが更新されたときに呼び出されます。変更さpreviousStatecurrentStateているかどうかを比較するために比較します。重要なフィールド、多対多のマッピングなどでは少し複雑になるかもしれませんが、すべて管理可能です。

于 2014-12-19T11:19:02.083 に答える