gpt4 book ai didi

grails - 在 AfterInsert/AfterUpdate 中修改对象

转载 作者:行者123 更新时间:2023-12-03 23:12:22 25 4
gpt4 key购买 nike

我有一个域对象,它保存基于作为同一域对象属性的参数的计算结果。我想确保任何时候参数被用户更改,它都会重新计算并正确保存到数据库中。

我正在尝试使用 afterInsert(首先确保计算正确)和 afterUpdate 来做到这一点。

然而,由于我的计算试图修改对象本身,它不起作用 - 抛出各种休眠异常。

我试图将 afterUpdate 代码放入一个事务中,但这没有帮助。恐怕我在这里遇到了循环依赖问题。

我现在得到的异常(exception)是:

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

GORM 事件是为更简单的用例设计的吗?我很想得出结论,修改您正在保存的对象不是要走的路。

最佳答案

您使用的是 1.2.0+ 吗?

如果是,您可以在事件闭包中使用 .withNewSession 来避免休眠困惑。

干杯

关于grails - 在 AfterInsert/AfterUpdate 中修改对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com