Última Actualización abril 19th, 2021 12:16 PM
Nov 20, 2020 NGuerrero Metodologías, Programacion 0
¿Te gustaría aprender Spring Frameworks?
Tenemos los cursos que necesitas. ¡Haz clic aquí!
A continuación mostraremos la diferencia entre la anotación @JoinColumn y el atributo mappedBy y como trabajan en la relación entre tablas y el papel que juega cada uno.
En este artículo rápido, veremos la diferencia entre @JoinColumn y mappedBy en JPA. También mostraremos cómo usarlos en una asociación de uno a muchos @OneToMany.
Partimos teniendo dos entidades: Usuario y Email.
Claramente, un usuario puede tener múltiples direcciones de correo electrónico. Sin embargo, una dirección de correo electrónico dada puede pertenecer exactamente a un solo usuario.
Significa que comparten una asociación de uno a muchos @OneToMany:
Solo con la anotación @ManyToOne en la tabla emails junto con la definición del atributo private Usuario usuario sería suficiente para que nuestro Framework, a través de JPA generase de forma automática la Clave Foránea usuarios_id que apuntará a la clave primaria de la tabla usuarios. Pero no es aconsejable que todo el control lo tenga JPA y sus configuraciones por defecto, y siempre se aconseja usar @JoinColumn para especificar sus propiedades y tener nosotros el control.
Simplemente significa que nuestra entidad de correo electrónico tendrá una columna de clave externa llamada usuario_id que hace referencia al ID de atributo principal de nuestra entidad de empleado y que la clave foránea no debe de ser nula.
En resumen mappedBy define el objeto al que pertenece la relación y es obligatorio si la relación es bidireccional. Por lo que hace que no solo se pueda acceder a la información del usuarios desde el email, sino que también podamos hacerlo en sentido contrario. Exista o no exista la definición expresa del @JoinColumn.
Como habíamos dichoo, JPA ya tenía toda la información que necesita para mapear esa relación en nuestra base de datos. Para hacer que esta asociación sea bidireccional, todo lo que hay hacer ahora es añadir el atributo mappedBy del @OneToMany del lado del usuario.
Aquí, el valor de mappedBy es el nombre del atributo de mapeo de asociación en el lado propietario. Con esto, ahora hemos establecido una asociación bidireccional entre nuestros usuarios y entidades de correo electrónico.
Ya hemos visto la diferencia entre la anotación @JoinColumn y el atributo mappedBy. Los 2 describen una relación, los 2 pueden existir por separado o complementados. Siempre dependiendo si la dirección de la relación es unidireccional, bidireccional y si queremos controlar nosotros de forma explicita la creación de las claves foránea.
Te esperamos en los siguientes artículos en donde hablaremos más acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
¿Te gustaría aprender Spring Frameworks?
Tenemos los cursos que necesitas. ¡Haz clic aquí!
Powered by Facebook Comments
Abr 19, 2021 0
Abr 17, 2021 0
Abr 16, 2021 0
Abr 15, 2021 0
Abr 16, 2021 0
Abr 15, 2021 0
Abr 14, 2021 0
Abr 06, 2021 0
Abr 19, 2021 0
Abr 17, 2021 0
Abr 14, 2021 0
Abr 10, 2021 0
Abr 08, 2021 0