我有一個域對象,它根據屬於同一個域對象的參數來保存計算結果。我想確保任何時間參數被用戶更改,它會重新計算並正確保存到數據庫中。在AfterInsert/AfterUpdate中修改對象
我想用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事件?我試圖得出結論,修改你在保存中的對象不是要走的路。
什麼這個問題的解決方法。我也面臨着這個困境。 * .withNewSession *似乎不適用於afterInsert。我無法刷新對象,也沒有保存它(以及我可以.save(),但似乎我在afterInsert中完成的計算不會在數據庫中保留,如果我只是使用.save())。謝謝!無論如何,我只想將一個用戶對象保存在我的域類(例如,消息)中創建它。由於audit-trail只保存一個Long引用(例如,createdby),所以我最終無法操縱Message域的類並最終引用它的屬性 – 2010-06-02 05:57:53