有另一个与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
答案 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])