1

私は、このプロパティを持つ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: No default constructor for entity: com.portal.Time です

これを解決して、これらの属性を持つBootstrap.groovyインスタンスで実行するにはどうすればよいですか?Schedule

4

2 に答える 2

1

Time コンストラクターは private に設定されています。そのため、そのエラーが発生しています。

于 2012-07-06T15:40:14.853 に答える
0

この問題を解決する方法をGoogleで徹底的に検索しました。コンストラクタに関して、またはここにあるPythonの他の用語groovyとほぼ同じ機能を持っているようですpythontuples

クラスTimeに注釈を挿入した後、コンストラクターを複数の方法でコーディングできるようになりました。

于 2012-07-09T17:16:21.467 に答える