Mapeando Relaciones a nuestro proyecto

Clase 26 de 55Curso 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.