如何在grails中保存多个到多个域对象

时间:2012-07-09 10:55:47

标签: grails grails-2.0

我有两个域类,课程可以属于一个或多个培训,Track可以有一个或多个课程。

Class Track{
   string name 
   static hasMany= [courses: Course]

}

Class Course{
   String name
   static belongsTo = [tracks: Track]

}

在课程中创建一个页面,我有字段

<g:select id="tracks" name="tracks.id" from="${com.springpeople.tms.Track.list()}" optionKey="id" value="${courseInstance?.tracks?.id}" class="many-to-one" noSelection="['null': '']"/>

但是赛道没有得到保存,我是否需要明确传递赛道对象。有没有办法做到这一点。

1 个答案:

答案 0 :(得分:2)

首先需要保存跟踪类对象,然后才能保存Course类对象。

在您尝试保存课程对象的情况下,您将无法获得跟踪ID 为什么它会通过例外。

通过save方法保存跟踪类对象。

之后使用object.addToCourse(courseObject).save();为了储蓄。