Mapeando Relaciones a nuestro proyecto
Clase 26 de 55 • Curso Profesional de Java EE 2017
Resumen
En el Proyecto trabajaremos las siguientes relaciones:
- One to Many - Uno a muchos
La clase Teacher tiene una colección de Cursos
La clase Curso tiene una referencia de Curso
Nuestra clase Padre (Owner) será Teacher
La clase Hijo (No Owner) Courses
Por lo tanto en la clase Teacher donde tenemos nuestra colección de Cursos colocaremos la anotación: @OnetoMany(mappedBy=“teacher”)
Mientras que en la clase Course donde tenemos la referencia de Teacher colocaremos la anotación: @ManyToOne(optional=true, fetch=FetchType.EAGER) y además @JoinColumn(name=“id_teacher”) aquí se especifica el nombre del campo de la tabla que tiene la llave foránea
- Many to Many - Muchos a muchos
La relación de Teacher hacia TeacherSocialMedia va de Uno a muchos
La relación de SocialMedia hacia TeacherSocialMedia va de Uno a muchos
Dicho lo anterior la clase Teacher tiene una colección de TeacherSocialMedias y
la clase SocialMedia también
Por lo tanto en la clase Teacher donde tenemos la colección TeacherSocialMedia colocaremos la siguiente anotación: @OneToMany(cascade=CascadeType.ALL) y @JoinColumn(name=“id_teacher”) donde se especifica el nombre del campo de la tabla que tiene la llave foránea
Ahora en la clase SocialMedia haremos algo similar vamos a la colección TeacherSocialMedia colocamos: @OneToMany y @JoinColumn(name=“id_social_media”) que especifica el nombre del campo de la tabla que tiene la llave foránea.
Por último en la clase TeacherSocialMedia vamos a la referencia de Teacher y SocialMedia y ponemos: @ManyToOne(fetch=FetchType.EAGER) junto con @JoinColumn(name=“id_teacher”) para teacher y @JoinColumn(name=“id_social_media”) para socialMedia los cuales indican el campos que tienen la llave foránea.