grails调用hibernate更新



还有另一个与带有unique/save/update的Grails问题有关的问题。

有什么方法可以避免调用def-bookInstance.get(bookList.id[it])吗?例如,我仍然想覆盖数据库中现有的数据,但我不想从数据库中加载现有的数据。所以我调用def bookInstance=new Book()bookInstance.id=XXX bookInstance.save()

这不起作用,因为gorm把它当作一个新的Object,有没有办法强制更新现有的Object?类似调用hibernateSession.update

加载实例不应该非常昂贵,因此您可能提前进行了优化。但是,您可以使用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])

最新更新