gpt4 book ai didi

grails - 在Grails save()中使用插入标志的好处

转载 作者:行者123 更新时间:2023-12-02 15:10:35 25 4
gpt4 key购买 nike

保存域类时使用grails插入标志有什么好处?

这是一个例子:
可以说我有一个域对象FooBar:

FooBar foo = FooBar.find("foo")?: new FooBar(id:"foo")

foo.bar = "bar"

foo.save()

最好做更多这样的事情:
boolean insertFlag
FooBar foo = FooBar.find("foo")

if(foo == null){
insertFlag = false
}else {
foo = new FooBar(id:"foo")
insertFlag = true
}

foo.bar = "bar"

foo.save(insert: insertFlag)

我当时在想,如果没有插入标志的话,保存将以某种方式更加流畅。

最佳答案

如果您将域类的ID insert设置为save,则generator中的assigned非常有用。在这种情况下,id必须由用户分配。

这是一种通知休眠状态的方法,是您要对记录进行insert还是仅对update想要。

class FoofBar{
String bar
static mapping = {
id generator: 'assigned'
}
}

def fooBar = new FooBar(bar: 'foo')
fooBar.id = 100
fooBar.save() //inserts a record with id = 100

def secondFooBar = FooBar.get(100)
secondFooBar.id = 200
//want to insert as a new row instead of updating the old one.
//This forces hibernate to use the new assigned id
fooBar.save(insert: true)

This会明确说明。

关于grails - 在Grails save()中使用插入标志的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241382/

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