2012-02-28 112 views
2

我與Grails的2.0.1試驗和通過的文件已經閱讀,但我通過新的動態方法困惑:你什麼時候使用新的動態GORM方法findOrSaveBy/Where?

def book = Book.findOrSaveWhere(author: 'Daniel Suarez', title: 'Daemon') 
def book = Book.findOrSaveByAuthorAndTitle('Daniel Suarez', 'Daemon') 

我能想象在那裏findOrCreateBy/Where可能會派上用場,但對我來說我的生活中的一些情況想不到findOrSaveBy/Where會被要求的任何情況。即使在test case on github這種方法的動機對我來說並不明顯。看起來在每個測試案例中,您顯然都想要find或明確想要save,因此使findOrSave只是使代碼的意圖不那麼清晰。

The original JIRA entry這些功能不討論動機或給出任何背景。有人可以給我一些場景,這些方法是有益的嗎?

回答

3

findOrCreateWhere - User.findOrCreateWhere(login:'bala'),這會在數據庫中找到一個用戶,登錄名爲bala。如果它沒有找到它,它將創建一個新的對象,但不會保存它。你必須明確地保存它。

findOrSaveWhere - User.findOrSaveWhere(login:'bala'),這將在數據庫中找到一個用戶,登錄名爲bala。如果沒有找到它,它會創建一個新的對象,並保存它。

希望有所幫助。

+0

我必須在文檔中五次閱讀該部分,並且由於某種原因,它只是沒有點擊。這很有道理,謝謝你的信息。 – proflux 2012-02-29 03:09:37

相關問題