0

オブジェクトが汚れている (変更されている) 場合に、saveOrUpdate にオブジェクトの新しいインスタンス (新しい識別子) を保存するように hibernate を強制する方法はありますか? これは構成またはインターセプターを介して可能ですか? 私は3つのエンティティを持っています:

Entity A (has B)
Entity B
Entity C (has B)
Entity B can only be updated through A

基本的に、(C) が作成および保存されたときに B のスナップショットを常に保持し、A によって参照される B のインスタンスを直接参照しないようにします。

B は変更可能で、A は B の最新バージョンを指す必要があります。

これは、equals メソッドを実装し、同等性をチェックし、saveOrUpdate() を呼び出す前に必要に応じて B の id フィールドを無効にすることで、手動で行うことができます。Hibernate またはより簡単な方法で組み込みの方法はありますか?

4

2 に答える 2

0

Hibernate DefaultSaveOrUpdateListenerに読み取りを与えてみてください。このリスナー (構成されている場合) は、オブジェクトを保存するという面倒な作業をすべて実行するために呼び出されます。このリスナーは、オブジェクトを保存または更新する必要があるかどうかを判断します。

ダーティオブジェクトの新しいオブジェクトを保存/更新/作成することを決定するロジックは、ここで実行できます。

于 2012-10-28T06:11:22.307 に答える
0

Hibernate Interceptors を簡単に読みたいと思うかもしれません。

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/events.html

于 2012-10-26T16:27:57.223 に答える