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;
 
    ...
}
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;
 
    ...
}
Grand merci pour le coup de pouce...