La tabella tipica per un T1 su molti T2 deve avere una chiave esterna su T2 rivolta a T1. La tabella T1_T2 di solito non è necessaria.
La struttura JPA sarebbe quindi uno a molti, forse a due vie.
Potrebbero esserci alcune disposizioni per rendere funzionante la struttura che descrivi. Si potrebbe cambiare T1_T2:
- aggiungere un vincolo univoco in T2 (in modo che solo una T2 è consentito)
'davvero questo che vuoi?
Redatta: sì, è quello che si vuole ;-)
Dubito che si possono trovare molti esempi in rete. Non ho alcuna soluzione provata, ma vorrei provare qualcosa in questo modo:
In Hibernate annotation reference documentation, vedere "2.2.5.3.2.3. Unidirezionale con join tabella" per ottenere l'idea. Sembra che:
@Entity
public class Trainer {
@OneToMany
@JoinTable(
name="TrainedMonkeys",
joinColumns = @JoinColumn(name="trainer_id"),
inverseJoinColumns = @JoinColumn(name="monkey_id")
)
public Set<Monkey> getTrainedMonkeys() {
...
}
Penso che si può trovare ciò che cercate a https://en.wikibooks.org/wiki/Java_Persistence/OneToMany#Example_of_a_OneToMany_using_a_JoinTable_database – Legna