例如,我编写了一个简单的域类:
class Book{
String bookName
}
我已经完成了这个实例的一些记录。现在我想更新其中一个,实现它,我想为bookName
编写一个setter。但通过GORM方法可能是更优雅的方法吗?
答案 0 :(得分:2)
这是一个例子。例如,在服务方法中。
Book bookInstance = Book.get(id) //id is the primary key
bookInstance.bookName = "new book name"
bookInstance.save(flush : true)
答案 1 :(得分:2)
Grails使用Groovy方法 - 为您创建了getter和setter,您可以认为它们可用于您创建的域类的每个属性。请参阅http://www.groovy-lang.org/style-guide.html第7节。
Alfredo提出了一种方法,你可以在其中获得Book类的一个实例,但是要使用它,你需要一个机制来获取id,以便你可以使用get()方法。
如果您想通过名称获取图书实例,可以使用动态查找器。参见6.4.1 http://grails.github.io/grails-doc/latest/guide/GORM.html#finders的动态查找器。
最简单的方法是使用它来获取您的图书实例:
def bookInstance= Book.findByBookName('the book name that you want to change')
然后您可以按照已经描述的那样更新它。