Когда вы будете использовать новые динамические методы GORM findOrSaveBy / Где? - PullRequest
2 голосов
/ 29 февраля 2012

Я экспериментирую с Grails 2.0.1 и прочитал документацию, но меня смущают новые динамические методы:

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

Я могу представить себе ситуации, когда findOrCreateBy/Where может пригодиться, но я не могу представить себе ситуации, в которых бы потребовался findOrSaveBy/Where. Даже в тесте на github мотивация этого метода для меня не очевидна. Кажется, что в каждом тестовом случае вы либо явно хотите find, либо явно хотите save, поэтому наличие findOrSave просто делает цель кода менее ясной.

Исходная запись JIRA для этих функций не обсуждает мотивацию и не дает никакого фона. Может кто-нибудь дать мне несколько сценариев, где эти методы будут полезны?

1 Ответ

4 голосов
/ 29 февраля 2012

findOrCreateWhere - User.findOrCreateWhere (логин: 'bala'), он найдет пользователя в базе данных с логином как bala.Если он не найдет его, он создаст новый объект, но не сохранит его.Вы должны сохранить его в явном виде.

findOrSaveWhere - User.findOrSaveWhere (login: 'bala'), он найдет пользователя в базе данных с логином как bala.Если он не найдет его, он создаст новый объект и сохранит его.

Надеюсь, это поможет.

...