5

同じドメインオブジェクトのプロパティであるパラメータに基づく計算結果を保持するドメインオブジェクトがあります。ユーザーがパラメーターを変更するたびに、パラメーターが再計算されてデータベースに適切に保存されることを確認したいと思います。

私はafterInsert(最初に計算が正しいことを確認するため)とafterUpdateでそれを行おうとしています。

ただし、私の計算はオブジェクト自体を変更しようとしているため、機能していません。さまざまな休止状態の例外がスローされます。

afterUpdateコードをトランザクションに入れようとしましたが、それは役に立ちませんでした。ここで循環依存の問題が発生しているのではないかと思います。

私が今得ている例外は次のとおりです。

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [esc.scorecard.PropertyScorecard#27]

GORMイベントは、より単純なユースケース向けに設計されていますか?保存中のオブジェクトを変更することは、道のりではないと結論付けたくなります。

4

2 に答える 2

3

1.2.0以降を使用していますか?

もしそうなら、休止状態の混乱を避けるはずのイベントクロージャで .withNewSession を使用できます。

乾杯

リー

于 2010-03-05T03:14:17.927 に答える
2

beforeInsertandbeforeUpdateの代わりにafterInsertandを使用しない理由はありafterUpdateますか?

before*そうでない場合は、イベント ハンドラーに切り替えると問題が解決するはずです。

于 2010-03-05T01:36:08.127 に答える