2012-07-05 106 views
1

我有這樣的域模型,grails-app/domain,命名爲com.portal.Schedule.groovy具有這種性質:Grails領域嵌入式

Subject subject 
Room room 
Day day 
Time timeStart 
Time timeEnd  
static embedded = ['timeStart', 'timeEnd'] 

凡在對象com.portal.Time位於src/groovy具有這種性質:

Integer hour 
Integer minute 
public Time(Integer hour, Integer minute) { 
    super(); 
    this.hour = hour; 
    this.minute = minute; 
} 

問題是當我想添加一個記錄使用BootStrap.groovy有這樣的語法:

new Schedule(subject: Subject.get(1), room: Room.get(1), day: Day.MON, 
    timeStart: new Time(9, 0), timeEnd: new Time(11, 00)).save(failOnError: true) 

我之前收到此錯誤信息,以完成對啓動:

消息:實體沒有默認構造函數:com.portal.Time;嵌套0​​例外是org.hibernate.InstantiationException:沒有默認 構造函數實體:com.portal.Time

我怎樣才能解決這個有我Bootstrap.groovySchedule與這些屬性的情況下運行?

回答

0

我在Google上徹底搜索瞭如何解決這個問題。 這似乎groovy幾乎與python關於構造函數或在其他方面相同的特徵tuples在Python位於here

插入批註類Time現在我可以以多種方式進行編碼的構造之後。

1

Your Time構造函數被設置爲private。這就是你得到這個錯誤的原因。

+0

對不起,對於最近的回覆,在將構造函數的訪問權限從private改爲public後,我得到了同樣的錯誤。 – 2012-07-09 17:04:23