Grails Domain Embedded

时间:2012-07-05 16:56:10

标签: gorm grails-domain-class

我有这个域名模型grails-app/domain,名为com.portal.Schedule.groovy,具有以下属性:

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;嵌套   异常是org.hibernate.InstantiationException:无默认值   实体的构造函数:com.portal.Time

如何解决这个问题,让我的Bootstrap.groovy运行Schedule这些属性的实例?

2 个答案:

答案 0 :(得分:1)

您的Time构造函数设置为private。这就是你得到这个错误的原因。

答案 1 :(得分:0)

我在Google上彻底搜索了如何解决这个问题。 似乎groovypython关于构造函数的功能几乎相同,或者在tuples

中的Python Time中具有相同的功能

将注释插入类{{1}}之后,我现在可以用多种方式编写构造函数。