grails - странное поведение после привязки данных - PullRequest
0 голосов
/ 22 сентября 2010

очень часто используется domainClass.properties = params для привязки всех входящих параметров запроса к объекту класса домена Я не понимаю, почему это назначение автоматически обновляет объект домена. например,

def update = {
  def book = Book.get(1)
  book.properties = params
  book.discard()
}

назначение параметров обновляет объект домена. Метод сброса не имеет никакого эффекта. кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Метод discard () не сбрасывает экземпляр книги, а только предотвращает его автоматическое сохранение Grails.Для сброса экземпляра книги вам необходимо перезагрузить его, например, с помощью Book.get (1).

И book.properties = params просто попытается назначить элементы в карте params свойствам Book, где свойствоимя совпадает с ключом ввода карты.Я считаю, что это стандартная функциональность Groovy, а не специфическая для Grails.

0 голосов
/ 14 января 2013

Я не знаю, почему ответ Рубена был выбран как правильный. @ hitt5 поведение такое, как и ожидалось, но да, оно другое, и вы найдете причину здесь: http://blog.springsource.org/2010/06/23/gorm-gotchas-part-1/ Смотрите раздел «Теперь вы экономите, когда я не хочу, чтобы вы ?!» в частности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...