我是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的文档。所以有人可以帮我这个吗?感谢。
答案 0 :(得分:0)
看起来你在params地图中有一个名为“person”的属性,Grails试图将其转换为“Person”对象。尝试将该字段更改为“person.id”,Grails应自动获取与该id对应的Person对象,并将其与“person”对象匹配。
有关详细信息,请参阅“数据绑定和单端关联”部分下的DataBinding。