gpt4 book ai didi

spring - 您能否在 Grails 中对复合 id 进行数据绑定(bind),使其(或其中的一部分)变得可更新?

转载 作者:行者123 更新时间:2023-12-02 14:12:52 24 4
gpt4 key购买 nike

我正在尝试通读 dataBind 文档,但还不是很清楚:

http://grails.org/doc/2.1.0/ref/Controllers/bindData.html

我有一个由 4 列组成的复合 ID,我需要更新其中之一。它拒绝 .save() 甚至不抛出错误。是否有一些配置可以让我更改这些值并保存模型?

如果我删除它并创建一个新记录,它将碰撞我在浏览器端使用数据表/jeditable 的 rowid,这不是一个真正的选择。但是,即使我将所有参数都包含在一个空列表中:

def a = WaiverExemption.find("from WaiverExemption as e where e.exemptionRowId = ?", [params.rowid])
a.properties = params
bindData(a, params, [include: []])
a.save(flush: true, failOnError: true)

这似乎不起作用。我还尝试用它们自己和“id”明确命名列/属性。

最佳答案

我对 bindData() 的实际作用感到困惑。对此仍然感到困惑。

如果您在 Grails 中有一个复合 id 并希望更改一个或多个列值,则 save() 将永远不会按照问题中的建议执行。相反,您需要使用 .executeUpdate()。您可以传入 HQL 以更新(尽管网络上的大多数示例都是用于删除)有问题的表,其语法几乎与正确的 SQL 相同。类似于“update domain d set d.propertyName = ?”的东西应该管用。

我不知道这样做是否明智,或者它是否违反了 Grails 应用程序应该如何工作的一些哲学规则,但它实际上会进行更新。我建议谨慎并进行大量测试。这废话对我来说都是巫术。

关于spring - 您能否在 Grails 中对复合 id 进行数据绑定(bind),使其(或其中的一部分)变得可更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485755/

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