gpt4 book ai didi

grails - 创建域类的新实例不保存

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

我不想保存已编辑的域类,而是要使用已执行的更改来创建它的新实例。

def update =
{
def VariantInstance = Variant.get(params.id)
VariantInstance.properties = params
def NewVariantInstance = new Variant()
//Now Assign Variant Instance new Values
NewVariantInstance.Name = VariantInstance.Name
NewVariantInstance.LocationID = VariantInstance.LocationID
NewVariantInstance.aliases = VariantInstance.aliases
NewVariantInstance.closeToBoundary = VariantInstance.closeToBoundary


if (VariantInstance) {
if (!VariantInstance.hasErrors() && !NewVariantInstance.hasErrors()) {
println("no errors")
try {
NewVariantInstance.save()
}
catch (Exception ex)
{
println(ex.toString())
}


flash.message = "${message(code: 'default.updated.message', args: [message(code: 'Variant.uniqueIdentifyingName', default: 'Variant'), VariantInstance.id])}"
redirect(action: "list")
}

}

但是,当我执行此操作时,A)未保存新版本,B)NewVariantInstance没有ID。有什么想法吗?

最佳答案

您的VariantInstanceNewVariantInstance永远不会通过验证,因此hasErrors()将始终返回false。您需要从

!VariantInstance.hasErrors() && !NewVariantInstance.hasErrors()


VariantInstance.validate() && NewVariantInstance.validate()
NewVariantInstance可能存在验证错误,因此 save()不成功。

关于grails - 创建域类的新实例不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15145469/

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