在Grails中绑定多个对象

在Grails中绑定多个对象,grails,Grails,我有三个域类: 人。(个人ID、姓名、地址) 名称(名称、ID、标题、波段) 工资单(个人ID、职务ID、总收入、税款等) 在更新方法中,人员控制器在我从指定值列表中指定人员时,我希望在工资单中插入新记录 比如: def update = { def SalarySlipInstance = new SalarySlip() SalarySlipInstance.Person.ID = Params.ID //is this correct? SalarySlipInsta

我有三个域类:

  • 人。(个人ID、姓名、地址)
  • 名称(名称、ID、标题、波段)
  • 工资单(个人ID、职务ID、总收入、税款等)
在更新方法中,人员控制器在我从指定值列表中指定人员时,我希望在工资单中插入新记录

比如:

def update = {
   def SalarySlipInstance = new SalarySlip()
   SalarySlipInstance.Person.ID = Params.ID //is this correct?
   SalarySlipInstance.Designation.ID = ?? //since the value is coming from a list. How can I bind this field?
}

您需要首先加载人员和指定对象:

salarySlipInstance.Person = Person.get(params.person.id)
salarySlipInstance.Designation = Designation.get(params.designation.id)

如果在您的表格中,您在person和指定id前加上person前缀。和名称。它使加载更容易。

嗨,Dave,谢谢你的回复,我尝试了你的解决方案,但我得到了以下错误:无法在null对象上设置属性“id”。左侧是错误的,请尝试以下操作:salarySlipInstance.Person=Person.get(params.Person.id)salarySlipInstance.Designation=Designation.get(params.Designation.id)我写了这个def SalarySlipInstance=new SalarySlip()SalarySlipInstance.person=person.get(params.person.id)SalarySlipInstance.designation=designation.get(params.designation.id)SalarySlipInstance.save()更新方法工作正常,但是,当我使用dbPlugin检查数据时,表中没有数据!我遗漏了什么吗,谢谢。为拼写错误道歉,现在更正。如果未保存,请检查对象绑定错误(salarySlipInstance.hasErrors()salarySlipInstance.errors)