我有一个域对象,它包含基于同一域对象属性的参数的计算结果.我想确保用户更改任何时间参数,它会重新计算并正确保存到数据库中.
我试图用afterInsert(以确保计算首先是正确的)和afterUpdate.
但是,由于我的计算试图修改对象本身,它不起作用 - 抛出各种hibernate异常.
我试图将afterUpdate代码放入事务中,但这没有帮助.我担心我会在这里遇到循环依赖问题.
我现在得到的例外是:
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [esc.scorecard.PropertyScorecard#27]
Run Code Online (Sandbox Code Playgroud)
GORM活动是否针对更简单的用例而设计?我很想得出结论,修改你正在保存的对象是不可取的.
有什么理由反对使用beforeInsertandbeforeUpdate代替afterInsertand吗afterUpdate?
如果没有,切换到before*事件处理程序应该可以解决您的问题
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |