テーブル SUBCOURSE は COURSE COURSE(id, name) SUBCOURSE(id, course_id, name) を参照します
では、1:M.
Hibernate はコース用に生成します:
@OneToMany(fetch = FetchType.LAZY、mappedBy = "コース"、カスケード = CascadeType.ALL) public Set getSubCourses() { this.subCourses を返します。 }
生成するサブコースの場合
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "course_id", nullable = false) パブリックコース getCourse() { this.course を返します。 }
問題は、カスケードが期待どおりに機能しないことです。SubCourse オブジェクト (Set) のコレクションを作成し、それを埋めてから、Course オブジェクトの setSubCourses() にバインドします。次に、単にコース オブジェクトを永続化します。
ただし、Subcourses テーブルに ManyToOne があるため、各オブジェクトのコレクションに追加する前に手動で setCourse() する必要があります。そうしないと、Course オブジェクトとそのコレクションを永続化するときに例外が発生します。
何をお勧めしますか?
PS または多分これはゲームの一部ですか? すべての子の親オブジェクトを手動で設定しますか?