colocación de mappedBy en una relación OneToOne en Java Hibernate/JPA
Si tenemos dos clases X e Y que tienen una relación OneToOne entre ellas
java
class A {
@OneToOne(mappedBy = a)
private B b;
}
class B {
@OneToOne
private A a;
}
Me gustaría saber si hace alguna diferencia si pasamos el parámetro mappedBy
de la Clase A a la Clase B..
davy.ai
Sí, sí hace una diferencia si cambiamos el
mappedBy
de la Clase A a la Clase B. En la implementación actual, la Clase A es el lado propietario de la relación OneToOne y la Clase B es el lado inverso. Esto significa que la clave externa se almacena en la tabla de la Clase A.Si cambiamos el
mappedBy
a la Clase B, entonces la Clase B se convierte en el lado propietario y la Clase A se convierte en el lado inverso. Esto significa que la clave externa se almacenará en la tabla de la Clase B.La elección del lado propietario depende del caso de uso y del diseño del modelo de datos. Se recomienda elegir el lado que se accede con mayor frecuencia o el lado que contiene la clave externa.