3

私は、試験が多対多の質問へのマッピングを持ち、各 question_exam の組み合わせが多くの結果を持つことができるモデルを持っています (たとえば、exam1 の質問 1 は 10 回答えることができるため、10 の結果が得られます)。基本的なモデル クラスは次のとおりです。

Exam{
    exam_id
}

Question{
    question_id
}    

Result{
id
    exam_id
    question_id
    dateentered
}

試験と問題との関係を簡単に作成できます。休止状態は、exams_questions という名前で作成した結合テーブルを使用します。私の問題は、結果を Exams_questions テーブルにリンクすることです。たとえば、次の構造を持つ試験オブジェクトを取得したい場合: 試験 - 問題 - 結果 (試験に関連する問題のみ)

問題のコレクションを含むオブジェクトとして Exam を取得できるようにマッピングを作成するにはどうすればよいですか? また、それらの問題には結果のコレクションがあります (その試験のみ)。

追加の列と三項関連を含む結合テーブルを見てきましたが、それらが必要なものを提供してくれるとは思いません。

前もって感謝します

4

1 に答える 1

2

次の関連付けが必要です。

Exam {
    id;

    @OneToMany(mappedBy = "exam")
    Set<ExamQuestion> examQuestions;
}
Question {
    id;

    @OneToMany(mappedBy = "question")
    Set<ExamQuestion>;
}
ExamQuestion {
    id;

    @ManyToOne
    Question question;

    @ManyToOne
    Exam exam;

    @OneToMany(mappedBy="examQuestion")
    Set<Result> results;
}
Result {
    id

    @ManyToOne
    ExamQuestion examQuestion;
}

上記では、各関連付けを双方向の関連付けとしてマップしていますが、もちろん単方向にすることもできます。

于 2012-11-19T15:15:34.010 に答える