私は、Spring Data Restで管理されているエンティティチェーンを通じて更新操作中に行われた変更を調べるのに、最も慣れ親しんだ方法を探しています。更新操作で前のエンティティにアクセス
現在の私の使用例は、パスワードを最後に変更したときのものです。私のドメインオブジェクトには、パスワードと変更時刻の2つのフィールドがあります。私は私のREST APIをパスワードを設定するだけでいいですし、私はそれが新しいものかどうかを検出して変更時刻を更新します。私はフロントエンドに変更時間を設定しなければならないかどうかを知ることを好まないでしょう。私はまた、データベーストリガーを作成しないことをお勧めします。
私はHandleBeforeSave
イベントを作成しようとしました。このイベントは、既存のドメインオブジェクトを照会し、イベントハンドラに渡されたものと比較しようとします。残念ながら、それらは全く同じオブジェクトなので、それらの違いを検出することはできません。私は、SpringデータリポジトリとEntityManager
を介してクエリを実行しようとしました。私はバックエンドとしてHibernate 5を使用しています。
RepositoryEntityController
でpatchItemResource
メソッドを実行すると、payload.getContent()
の結果は、更新が適用された1つのフィールドのみを修正した場合でも、エンティティ全体が反映されます。これがジャクソンによって行われたのか、PersistentEntityResource
がそれをどこかで処理しているのかどうかはわかりません。オブジェクトをマージするコードフローが分かっている人は参考になりますか?