2012-07-09 53 views
2

我有兩個域類,課程可以屬於一個或多個培訓,並且可以有一個或多個課程。如何在grails中保存多對多的域對象

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': '']"/> 

但軌道是沒有得到保存過程中,我是否需要明確地傳遞軌道對象。有沒有辦法做到這一點。

回答

2

首先您需要保存跟蹤類對象,然後您可以保存課程類對象。

在您的情況下,當您嘗試保存課程對象時,您將無法獲得跟蹤ID,即 爲什麼它會通過例外。

通過保存方法保存軌道類對象後。

之後使用object.addToCourse(courseObject).save();爲了節省。