如果我在这里遗漏了一些非常明显的事情,我很抱歉,但是我一直在解决这个问题。
我有一个命令对象:
class MyCommand {
Long id
String value
}
我在我的控制器中绑定了这个:
public update(MyCommand myCmd) {
}
在这种情况下,一切都很好。现在我正在尝试添加版本字段,该字段在请求参数中传递给命令对象:
class MyCommand {
Long id
Long version
String value
}
现在,当绑定发生时,id和version始终为null,即使它们存在于params对象中。
我怀疑对于与grails如何处理乐观锁定有关的id / version属性可能有一些特殊处理(因为这最终是我这样做的原因)但是问题出现在命令对象中,与任何域对象无关
我很困惑为什么这不起作用。在命令对象上存在版本时是否存在某些特殊情况?
答案 0 :(得分:8)
似乎这是根据Jeff Brown jira
设计的数据绑定显式避免绑定id或版本[if]两者 存在并按设计完成。这是一种抵御潜力的盾牌 与域相关的与数据绑定相关的安全问题 类。对命令对象的简单解决方法是命名 具有“idValue”和“versionValue”或类似内容的属性 “id”和“version”以外的任何内容。