我有一个域对象,它根据属于同一个域对象的参数来保存计算结果。我想确保任何时间参数被用户更改,它会重新计算并正确保存到数据库中。在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