我希望能够更新我有一个 id 的以前持久化的对象,而不必先检索它。我要避免的主要事情是,当从数据库中检索到对象时,必须将多个值复制到对象的字段中。我在映射中有这些值,其键对应于字段名称,因此通过构造函数以映射作为参数来创建对象是微不足道的。不幸的是,以这种方式创建的对象在保存时会导致新的数据库记录,即使 id 字段设置为现有记录的字段也是如此。
我目前在此处显示的示例中使用了一个细微的变化来复制 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
谢谢