2012-02-28 7 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(ログイン: 'bala')これは、データベースにbalaとしてログインしているユーザーを見つけます。 1つも見つからなければ、新しいオブジェクトを作成しますが、保存しません。明示的に保存する必要があります。

findOrSaveWhere - User.findOrSaveWhere(ログイン: 'bala')これは、データベースにbalaとしてログインしているユーザーを検出します。それが見つからない場合は、新しいオブジェクトを作成し、それを保存します。

希望に役立ちます。

+0

私はこのセクションをドキュメントで5回読んでいるに違いありません。何らかの理由でそれがクリックされなかっただけです。それは意味があります、情報のおかげで。 – proflux

関連する問題