更新数据库记录grails

Update database record grails

例如我写了一个简单的域-class:

class Book{
  String bookName
}

我对这件事做了一些记录。现在我想更新其中一个,为了实现它,我想为 bookName 写一个 setter。但可能是通过 GORM 方法执行此操作的更优雅的方法?

这是一个例子。例如,在服务方法中。

Book bookInstance = Book.get(id) //id is the primary key
bookInstance.bookName = "new book name"
bookInstance.save(flush : true)

Grails 使用 Groovy 方法 - getter 并为您创建了 setter,您可以认为它们可供您在域的每个 属性 上使用 class 你创造的。参见 http://www.groovy-lang.org/style-guide.html 第 7 节。

Alfredo 建议了一种方法,您可以通过这种方法获取图书的一个实例 class,但要使用此方法,您需要一种机制来获取 id,以便您可以使用 get() 方法。

如果您想通过书名获取图书实例,可以使用动态查找器。请参阅 http://grails.github.io/grails-doc/latest/guide/GORM.html#finders.

的 6.4.1 动态查找器

最简单的方法是使用它来获取您的图书实例:

def bookInstance= Book.findByBookName('the book name that you want to change')

然后您可以按照已经描述的那样对其进行更新。