Grails GORM:更新beforeUpdate上的关联对象的属性不会持久化

问题描述 投票:0回答:1

我有一个域类,如:

class X {
    String name

    Y y 

    def beforeUpdate() {
        y.name = "new name"
        y.save() //DOESN'T work, adding flush: true throws exception
    }
}
grails gorm grails-2.0
1个回答
1
投票

beforeUpdate事件发生在刷新期间,因此您无法触发另一次刷新。 (如果这样做,您将获得堆栈溢出。)

如果beforeUpdate返回false,它将取消保存。我建议你尝试以下方法:

def beforeUpdate() {
    y.name = "new name"
    return true
}

我相信save方法返回null(失败),它被强制为false。

© www.soinside.com 2019 - 2024. All rights reserved.