【发布时间】:2012-11-13 02:33:24
【问题描述】:
我希望能够更新以前保存的对象,我有一个 id,而不必先检索它。我要避免的主要事情是,当从数据库中检索到对象时,必须将多个值复制到对象的字段中。我在映射中有这些值,其键对应于字段名称,因此通过构造函数以映射作为参数来创建对象是微不足道的。不幸的是,以这种方式创建的对象在保存时会导致新的数据库记录,即使 id 字段设置为现有记录的字段也是如此。
我目前正在使用here 所示示例之一的细微变化来复制 Groovy 类属性,但由于多种原因,这不是一个非常优雅的解决方案。
基本上我希望能够做这样的事情:
class Foo {
int a
String b
}
def data = [id: 99, a: 11, b: "bar"] //99 is the id of an existing record
def foo = new Foo(data)
foo.update() //or some other comparable persistence mechanism
谢谢
【问题讨论】:
-
请注意,我希望找到类似于上面虚构的 update() 语句的内容,不需要通过将它们复制到对象或 SQL 语句等中来指定各个字段。
标签: groovy grails-orm