gpt4 book ai didi

grails - 保存第二版本的grails对象

转载 作者:行者123 更新时间:2023-12-02 15:33:51 25 4
gpt4 key购买 nike

我想做的一件事是版本化数据库中的条目。在我的更新方法中,我想保存一个对象的新版本。例如

def update = {
def VariantInstance = Variant.get(params.id)
def NewVariantInstance = VariantInstance
NewVariantInstance.properties = params
if (VariantInstance) {
if (!VariantInstance.hasErrors()) {
VariantInstance.save()
NewVariantInstance.save()

flash.message = "${message(code: 'default.updated.message', args: [message(code: 'Variant.uniqueIdentifyingName', default: 'Variant'), VariantInstance.id])}"
redirect(action: "list")
}
else {
render(view: "edit", model: [VariantInstance: VariantInstance])
}
}
else {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'Variant.uniqueIdentifyingName', default: 'Variant'), params.id])}"
redirect(action: "list")
}
}

尽管这会保存当前的文件,但不会创建新的文件。我究竟做错了什么?

最佳答案

有两个问题。 NewVariantInstance最有可能只是对VariantInstance的引用,因此它将取消引用同一对象。另外,当您进行参数分配时,您还需要将VariantInstance的id字段分配给NewVariantInstance,因此GORM保存时将看到相同的对象。

关于grails - 保存第二版本的grails对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15144718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com