0

我正在尝试在 grails 中将数据添加到数据库中,但出现此错误:

错误 500:执行控制器 [mgr.CollectDataEntryController] 的操作 [getData] 导致异常:groovy.lang.MissingMethodException:没有方法签名:静态 groovy.lang.MissingMethodException.addToAlumConnectionEducations() 适用于参数类型:(mgr.AlumConnectionEducations)值:[mgr.AlumConnectionEducations:空]

其中 CollectDataEntryController 是执行工作的控制器。这是该控制器的代码片段:

saveNewAlum.addToAlumConnectionEducations(new AlumConnectionEducations(alumConnectionsId:connectionId, degree:alumConnectionEduDegree,endDate:alumConnectionEduEndDate,fieldOfStdudy:alumConnectionEduFieldOfStudy,schoolName:alumConnectionEduSchoolName,startDate:alumConnectionEduStartDate))

域 AlumConnectionEducations 属于与另一个域 AlumConnections 的一对多关系,而后者又属于与另一个域 alumProfile 的一对多关系

到,在我的代码中,我首先添加了域 AlumConnection,它工作正常,但是当我尝试添加 AlumConnectionEducations 时,我得到了上述错误。有人知道我做错了什么吗?

谢谢杰森

    package mgr
    import java.util.Date;
    class AlumConnections  {
String linkedinId
String firstName
String lastName
String headline
String locationName
String locationCode
String industry
    Date dateCreated
Date lastUpdated
long version
static belongsTo = [alumProfile:AlumProfile]
static hasMany = [  
alumConnectionEducations    :   AlumConnectionEducations
 ]
static mapping = {
    cache true

    columns {       
        linkedinId      type:'text'
        firstName       type:'text'
        lastName        type:'text'
        headline        type:'text'
        locationName    type:'text'
        locationCode    type:'text'
        industry        type:'text'

    }
}
static constraints = {  
    linkedinId      (nullable:false, blank:false)
    firstName       (nullable:true)
    lastName        (nullable:true)
    headline        (nullable:true)
    locationName    (nullable:true)
    locationCode    (nullable:true)
    industry        (nullable:true)

}
  }         

在调用域的控制器中:

  def saveNewAlum = ""
  saveNewAlum = new AlumProfile(firstName:linkedinFirstName, lastName:linkedinLastName, dob:newDate,industry:linkedinIndustry, oAuthToken:oAuthtoken, secretKey:secretKey)

  saveNewAlum.addToAlumConnections(new   AlumConnections(linkedinId:connectionId,firstName:connectionFName, lastName:connectionLName, headline:connectionHeadline, locationName:connectionLocationname, locationCode:connectionLocationCode,industry:connectionIndustry))

上面的代码工作正常并保存到 MySQL 数据库。只有当我尝试创建 saveNewAlum.addToAlumConnectionEducations 时才会收到错误

4

1 回答 1

1

好吧,花了一整天,但我明白了。所以,我的假设似乎是正确的,是一对多和一对多导致了问题。这就是我修复它的方法。域是正确的方式,我有它。在控制器中:首先,我创建主父级:

         saveNewAlum=new AlumProfile(firstName:linkedinFirstName, lastName:linkedinLastName, dob:newDate, industry:linkedinIndustry, oAuthToken:oAuthtoken, secretKey:secretKey)

然后,我创建要添加到孩子的对象:

     myConnection= new AlumConnections(linkedinId:connectionId,firstName:connectionFName,lastName:connectionLName,headline:connectionHeadline,locationName:connectionLocationname, locationCode:connectionLocationCode,industry:connectionIndustry)

然后,我将孩子保存给父母:

    saveNewAlum.addToAlumConnections(myConnection)

然后,我创建要保存到孩子的孩子的对象:

  newConnectionEdu=  new AlumConnectionEducations(
              degree:alumConnectionEduDegree,
              endDate:alumConnectionEduEndDate,
              fieldOfStudy:alumConnectionEduFieldOfStudy,
              schoolName:alumConnectionEduSchoolName,
              startDate:alumConnectionEduStartDate)

然后,最后,我将孩子添加到孩子:

 myConnection.addToAlumConnectionEducations(newConnectionEdu)

这就是您将孩子添加到孩子的方式!

于 2011-07-22T03:11:16.297 回答