2013-06-21 20 views
0

保存域類時使用grails插入標誌的好處是什麼?在Grails中使用插入標記的好處save()

下面是一個例子: 可以說我有一個域對象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) 

我在想,保存無論如何,插入標誌經文不會有更順暢的運行。

回答

1

insert裏面save是非常有用的,如果你有一個域爲assigned域名爲generator。在這種情況下,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會說清楚。

相關問題