grails调用hibernate更新

时间:2011-06-20 07:28:06

标签: grails

有另一个与Grails issue with unique/save/update相关的问题。

有没有办法避免调用def bookInstance.get(bookList.id [it])?例如,我仍然想要覆盖DB中存在的数据,但我不想从DB加载存在的数据,所以我调用def bookInstance = new Book()bookInstance.id = XXX bookInstance.save()

这不起作用,因为gorm把它作为一个新的Object,有没有办法强制更新存在一个?比如调用hibernateSession.update

1 个答案:

答案 0 :(得分:1)

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