Hibernate Envers を使用してログを記録していますが、履歴を追跡しているオブジェクトにイベントのタイプを設定する必要がありました。null
プロパティは必須であるため、設定されていないたびに配置するという考えがありましたlastEvent
。
そこで、プロパティを設定しようとしました@PrePersist
@PrePersist
public void checkIfLastEventWasModified() {
if (!lastEventModified) {
lastEvent = null;
}
}
しかし、どうやら休止状態は、これらのインターセプターがオブジェクトをダーティかどうかとしてマークすると見なします。したがって、このコードがダーティ チェックで実行されたときは、オブジェクトで何も変更されていない場合lastEventModified
でもfalse
、毎回lastEvent
に設定されます。null
Hibernate の EventListeners でも試してみましたが、それらはトランザクションの外部で実行され、プロパティを設定できましたが、データベースに保存されませんでした。
どちらの解決策も正しくないように感じますが、この問題を最善の方法で解決する方法がわかりません。