Grails называют обновление Hibernate - PullRequest
0 голосов
/ 20 июня 2011

Есть еще один вопрос, связанный с Проблема Grails с уникальным / save / update .

Есть ли способ избежать вызова def bookInstance.get (bookList.id [it])?например, я все еще хочу перезаписать существующие данные в БД, но я не хочу загружать существующие данные из БД, поэтому я вызываю def bookInstance = new Book () bookInstance.id = XXX bookInstance.save ()

Это не работает, потому что gorm принимает его как новый объект, есть ли способ заставить обновление существовать один?как вызов hibernateSession.update

1 Ответ

1 голос
/ 20 июня 2011

Загрузка экземпляра не должна быть очень дорогой, поэтому вы, вероятно, преждевременно оптимизируете.Но вы можете использовать executeUpdate для обновления данных без предварительного их извлечения.Например, если ваш класс Book выглядит так:

class Book {
    String author
    String title
}

, вы можете обновить его следующим образом:

Book.executeUpdate(
    'update Book b set b.author=:author, b.title=:title where b.id=:id',
    [author: params.author, title: params.author, id: params.id])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...