我有这个域名模型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
这些属性的实例?
答案 0 :(得分:1)
您的Time构造函数设置为private。这就是你得到这个错误的原因。
答案 1 :(得分:0)
我在Google上彻底搜索了如何解决这个问题。
似乎groovy
与python
关于构造函数的功能几乎相同,或者在tuples
Time
中具有相同的功能
将注释插入类{{1}}之后,我现在可以用多种方式编写构造函数。