J'ai 3 entités qui peuvent avoir une relation les unes avec les autres. Donc, une bonne étape pour résoudre ce problème est d'utiliser une autre table pour stocker les 3 ID des 3 entités. Disons que les entités sont X, Y et Z.Relation ternaire Hibernate et table additionnelle
@Entity
public class XYZ {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne
@JoinColumn(name = "X_ID")
private X x;
@ManyToOne
@JoinColumn(name = "Y_ID")
private Y y ;
@ManyToOne
@JoinColumn(name = "Z_ID")
private Z z;
public XYZ(){
}
}
Entités X, Y et Z ont leurs propres attributs et propre clé primaire. J'ai quelques questions.
1) Devrais-je ajouter @OneToMany aux entités X, Y et Z sur l'attribut privé XYZ xyz; ? Ou n'est-ce pas nécessaire lorsque nous voulons seulement trouver la relation avec l'aide de la table XYZ.
2) Dans l'entité XZY j'ai des getters et setters normaux pour les entités X, Y et Z. Je donne l'entité entière. Hibernate va-t-il automatiquement picorer les clés primaires de X, Y et Z dans l'entité XYZ?
Dernière question 3) Disons que je supprime l'objet X qui est utilisé dans l'entité XYZ, est-ce que hibernate va automatiquement supprimer l'enregistrement dans l'entité XYZ? Ou dois-je ajouter des informations supplémentaires.
Désolé pour ces questions, mais Hibernate est très nouveau pour moi.