3

春の監査を使用して、エンティティの変更されたフィールドとその古い値、新しい値のリストを取得できますか?

エンティティの更新されたフィールドのリストと、ログの古い値と新しい値を取得しようとしていました。getDeclaredFields を使用して、更新前に古いエンティティと新しいエンティティを比較しましたが、機能しました。しかし、いくつかの標準的で簡単な解決策があるかどうかはまだ疑問に思っていました. エンティティを管理するために春と休止状態を使用しています。調査の結果、更新イベントにリスナーを追加し、イベントから getDirtyProperties を使用することで、目的に応じて休止状態セッションを使用できることがわかりました。しかし、私が理解しているように、休止状態のトランザクションマネージャーが必要であり、すでに JpaTransactionManager を使用しており、変更できません。

それから私はこの春の監査機能 http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#jpa.auditingについて言われ 、質問は getDirtyProperties のようなものを提供できるかどうかです? それとも別の解決方法があるのでしょうか? 新しいテーブルを作成することは望ましくないため、正しく行うと、春の監査ではデータベースに監査データを格納する必要があります。

4

1 に答える 1

3

SpringのAuditableには、データベースに保存する必要のあるものは実際にはありませんが、どのフィールドが変更されたかについては、探している詳細レベルも含まれていません。Hibernate Enversはそれを行いますが、データベースに保存できるのは監査レコードのみだと思います。ただし、これを出発点として使用できる場合があります。

于 2012-12-28T02:38:10.723 に答える