更新字段

时间:2012-11-15 06:34:59

标签: java grails groovy

我是grails的新手,我有一个这个简单类的应用程序:

class Person{
String name
}

class Voter{
String voteAddress
String counter
Person person
}

现在,我正在尝试仅更新Voter类的字段人员。现在我有下面的代码,它不起作用,我知道这是错的,但无论如何我都试过了:

def updatePersonFieldOnly{
 def voterInstance = Voter.get(params.id)
 voterInstance.properties=params

 def personInstance = Voter.findById(12)

 voterInstance.person = personInstance

 ......some other code to update
 .....
}

现在,当动作执行时,我收到了这个错误:

无法将类型为java.lang.String的属性值转换为属性person的必需类型proj.Person;嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为属性person的必需类型[proj.Person]:找不到匹配的编辑器或转换策略

我仍然在阅读grails的文档。所以有人可以帮我这个吗?感谢。

1 个答案:

答案 0 :(得分:0)

看起来你在params地图中有一个名为“person”的属性,Grails试图将其转换为“Person”对象。尝试将该字段更改为“person.id”,Grails应自动获取与该id对应的Person对象,并将其与“person”对象匹配。

有关详细信息,请参阅“数据绑定和单端关联”部分下的DataBinding