0

我是 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] 的值转换为属性人员所需的类型 [proj.Person]:找不到匹配的编辑器或转换策略

我仍在阅读 grails 的文档。那么有人可以帮我解决这个问题吗?谢谢。

4

1 回答 1

0

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

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

于 2012-11-15T06:39:53.157 回答