Bonjour,
Voici mon problème:
J'ai une relation ManyToMany unidirectionnelle entre une classe (exemple) Garage et une classe Voiture.
Garage contient donc une Liste de Voitures
En DB, c'est traduit par une table Garage, une table Voiture et une joinTable Garage_Voiture.
Jusque là, tout va bien.
Maintenant ça se complique, Garage contient donc plusieurs instances de Voiture, mais certaines propriétés de Voiture (comme la couleur) varient en fonction du Garage qui le contient...
concrètement, en DB, ça donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Garage Garage_Voiture Voiture ------ -------------- ----------- ID ID_Garage ID nom ID_Voiture marque couleurVoiture
Mon problème: Comment mapper ça dans mes classes avec les annotations?
"couleurVoiture" étant bien sûr un attribut de la classe Voiture
Voici ce à quoi ressemblent mes classes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 @Entity @Table(name="Garage") public class Garage implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="ID") private Long id; @Column(name="nom") private String nom; @ManyToMany @JoinTable(name="Garage_Voiture", joinColumns=@JoinColumn(name="Garage_ID"), inverseJoinColumns=@JoinColumn(name="Voiture_ID")) private List<Voiture> listVoitures; ... }Grand merci pour le coup de pouce...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 @Entity @Table(name="Voiture") public class Voiture implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="ID") private Long id; @Column(name="marque") private String marque; @Column(name="couleurVoiture") private String couleurVoiture; ... }
Partager