java - one - relacion uno a muchos spring boot
Relación uno a muchos con la tabla de unión (1)
Tengo una relación de uno a muchos modelada usando la tabla de unión:
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));
Se supone que las tablas modelan la relación de una t1 a muchas t2. ¿Cuál es la forma correcta de modelar estas tablas usando JPA?
La tabla típica para una T1 a muchas T2 es tener una clave externa en T2 que apunta hacia T1. La tabla T1_T2 generalmente no es necesaria.
La estructura de JPA sería entonces de Uno a Muchos, posiblemente de dos vías.
Podría haber algunos arreglos para que funcione la estructura que describes. Podrías cambiar T1_T2:
- agregue una restricción única en T2 (para que solo se permita una T2)
¿Es eso realmente lo que quieres?
Editado : sí, es lo que quieres ;-)
Dudo que puedas encontrar muchos ejemplos en la red. No tengo una solución comprobada, pero probaría algo como esto:
En la documentación de referencia de la anotación de Hibernate , consulte "2.2.5.3.2.3. Unidireccional con la tabla de unión" para obtener la idea. Parece que:
@Entity
public class Trainer {
@OneToMany
@JoinTable(
name="TrainedMonkeys",
joinColumns = @JoinColumn( name="trainer_id"),
inverseJoinColumns = @JoinColumn( name="monkey_id")
)
public Set<Monkey> getTrainedMonkeys() {
...
}