J'ai une relation un-à-plusieurs modélisée à l'aide de la table de jointure:
create table t1 (id int primary key, name varchar(10) /*...*/);
create table t2 (id int primary key, name varchar(10) /*...*/);
create table t1_t2 (t1_id int, t2_id int, primary key (t1, t2));
Les tableaux sont censés modéliser la relation d'un t1 à plusieurs t2. Quelle est la bonne façon de modéliser ces tables à l'aide de JPA?
La table typique pour un T1 à plusieurs T2 est d'avoir une clé étrangère sur T2 pointant vers T1. La table T1_T2 n'est généralement pas nécessaire.
La structure JPA serait alors un à plusieurs, peut-être à double sens.
Il pourrait y avoir des dispositions pour faire fonctionner la structure que vous décrivez. Vous pouvez modifier T1_T2:
C'est vraiment ce que tu veux?
Modifié : oui, c'est ce que vous voulez ;-)
Je doute que vous puissiez trouver de nombreux exemples sur le net. Je n'ai pas de solution éprouvée, mais j'essaierais quelque chose dans ce sens:
Dans documentation de référence d'annotation Hibernate , voir "2.2.5.3.2.3. Unidirectionnel avec table de jointure" pour avoir l'idée. On dirait:
@Entity
public class Trainer {
@OneToMany
@JoinTable(
name="TrainedMonkeys",
joinColumns = @JoinColumn( name="trainer_id"),
inverseJoinColumns = @JoinColumn( name="monkey_id")
)
public Set<Monkey> getTrainedMonkeys() {
...
}