Grails: для сохранения требуется addTo* и removeFrom*?
В некоторых примерах есть призыв к save
в то время как некоторые другие не делают. Я предполагаю что addTo*
нужен вызов save
в то время как removeFrom*
не делает. Я ошибаюсь?
1 ответ
Ни один не нуждается в вызове save()
в большинстве случаев. В ссылке " некоторые примеры" вы видите сохранение в основном доменном объекте. Author
, который сохраняется первым, а затем другие свойства сделают его в базе данных с надлежащим id
чтобы вернуться к ссылке. Например, эти два фрагмента эквивалентны в отношении сохранения:
def a = new Author(name: "Stephen King")
.addToFiction(fictBook)
.addToNonFiction(nonFictBook)
.save()
а также
def a = new Author(name: "Stephen King").save()
a.addToFiction(fictBook)
a.addToNonFiction(nonFictBook)
Иногда save(flush:true)
операция необходима, если вы после id
для дальнейших зависимых операций, в противном случае это не обязательно.
Чтобы протестировать, откройте два браузера, в одном нажмите ваше приложение, в другом посмотрите ваш .../dbconsole
- постоянство является быстрым без необходимости явного сохранения.