我有一个域对象,它保存基于参数的计算结果,这些参数是同一域对象的属性。我想确保任何时候用户更改参数,它都会重新计算并正确保存到数据库中。
我正在尝试使用 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 事件是为更简单的用例设计的吗?我很想得出结论,修改你正在保存的对象不是要走的路。