J'ai un problème avec le mappage un-à-plusieurs.
Deux tables de questions (PK (id), texte) et réponses (PK (id, questionId), texte)
Dans mon application, j'utilise ces tables en mode lecture seule.
Je veux définir les relations entre cette tablesOneToMany et PK complexe
@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;
}
Mais quand je l'utilise @JoinColumn sera créé clé étrangère.
Et quand je tente de remplir les tables, je suis exception
java.sql.SQLIntegrityConstraintViolationException: ORA-02292: integrity constraint (ZODI.FK_ANSWERS_QUESTIONID) violated - child record found
Merci pour la réponse. Mais j'utilise maintenant bidouille laide pour ces relations (sous-requête) – Sarge