1対多のマッピングに問題があります。
2つのテーブルの質問(PK(id)、text)と回答(PK(id、questionId)、text)
私のアプリではこのテーブルを読み取り専用モードで使用します。
私はこのテーブル間のリレーションOneToManyと複合体PK
@Entity
@Table(name = "QUESTIONS")
public class Question {
@Id
@Column(name = "QUESTIONID")
private long questionId;
@Column(name = "QUESTIONTEXT")
private String questionText;
@OneToMany(mappedBy = "question", fetch = FetchType.EAGER)
private List<Answer> answers;
}
@Entity
@Table(name = "ANSWERS")
public class Answer implements Serializable {
@EmbeddedId
private AnswerPK AnswerPK;
@Column(name = "ANSWERTEXT")
private String answerText;
@ManyToOne
@JoinColumn(name = "QUESTIONID", insertable = false, updatable = false)
private Question question;
}
@Embeddable
public class AnswerPK implements Serializable {
@Column(name = "QUESTIONID")
private long questionId;
@Column(name = "ANSWERID")
private int answerId;
}
を定義したいしかし、私は@JoinColumn外部キーを作成されます使用する場合。
そして、私はテーブルを埋めるためにしようとすると、私は例外
java.sql.SQLIntegrityConstraintViolationException: ORA-02292: integrity constraint (ZODI.FK_ANSWERS_QUESTIONID) violated - child record found
感謝。しかし、私は今この関係(サブクエリ)のために醜いハックを使用します。 – Sarge