我有两个Domain类
class Reputation {
int value
static hasMany = [events: Event]
static mapping = {
value defaultValue: 0
}
}
和
class Event {
int point
static belongsTo = [reputation: reputation]
}
在信誉服务中,我这样做
reputation.addToEvents(new Event())
reputation.save() //which gonna make event and reputation save at once
但我希望将信誉中的值更新为:值是所有事件点的总和。所以我补充说:
Class Event {
//....
def afterInsert() {
reputation.value += point
reputation.save()
}
}
但这是行不通的:我一直都有一个声望.value = 0。
怎么了 ?而我该如何正确执行呢?
最佳答案
如果仔细查看有关事件和GORM的Grails documentation,您会注意到它说:
因此,在您的情况下,可能是这样的:
Class Event {
//....
def afterInsert() {
Event.withNewSession {
reputation.value += point
reputation.save()
}
}
}