2013-05-08 104 views
0

here所述,使用with closure可以創建對象的新實例更簡單更簡單。但是如何在更新我的對象的實體值時使用這個閉包? 說我想更新有一個ID我的人對象的字段= 1如何使用閉包來更新對象的實體?

def p = Person.findById(1) 
p.fname = 'First' 
p.lname = 'Last' 
p.save() 

回答

0

你的意思是這樣的:

Person.findById(1).with { 
    fname = 'First' 
    lname = 'Last' 
    save() 
} 

這不是100%來自這個問題清楚,這就是你意思是...

+0

謝謝。我已經嘗試了上面的代碼,但是這不起作用,這就是我發佈這個查詢的原因。與你相同的代碼給了我這個錯誤,「不能使一個不​​可變的實體可修改。」這就是爲什麼我想知道如果我想更新我的對象的實體,是否正確使用with closure。謝謝:) – chemilleX3 2013-05-09 02:02:24

+0

我得到了問題。我收到此錯誤消息是因爲我的域類處於緩存只讀設置。謝謝:) – chemilleX3 2013-05-09 06:28:34

+0

@ chemilleX3我會問是否[這是問題](http://stackoverflow.com/questions/12699393/grails-data-binding-cannot-make-an-immutable-entity-modifiable); -) 真高興你做到了! – 2013-05-09 08:23:05

相關問題