Herramientas de usuario

Herramientas del sitio


unidades:03_relaciones:00_start

Diferencias

Muestra las diferencias entre dos versiones de la página.


unidades:03_relaciones:00_start [2023/04/07 21:26] (actual) – creado - editor externo 127.0.0.1
Línea 1: Línea 1:
 +====== Inicio ======
 +Esta unidad llamada "Relaciones" explica como realizar las distintas relaciones entre entidades de Hibernate.
  
 +<note warning>
 +Esta unidad contiene mucho mas material del que se necesita en el curso. Para el curso del CEFIRE únicamente es necesario estudiar los temas:
 +  * [[unidades:03_relaciones:04_uno_a_muchos_ordenada]]
 +  * [[unidades:03_relaciones:06_cascade]]
 +  * [[unidades:03_relaciones:07_equals]]
 +
 +El motivo de solo estudiar estos temas es por un lado que esta unidad quedó el año pasado muy **pesada** al ver todos los tipos de relaciones. Pero el motivo principal es un problema con Hibernate en la relaciones muchos a muchos que hacen que al borrar una fila se borren mas filas de las necesarias. 
 +
 +Así que por un lado no es recomendable usar la relación [[unidades:03_relaciones:05_muchos_a_muchos_desordenada]]. También para qué explicar la relación [[unidades:03_relaciones:03_uno_a_muchos_desordenada]] si realmente en mas conveniente usar [[unidades:03_relaciones:04_uno_a_muchos_ordenada]] ya que no se pierde nada.
 +Por otro lado las relaciones "uno a no" tampoco son tan habituales.
 +
 +Por todo ello mejor aligerar esta unidad y tener más tiempo para las 2 últimas unidades que son más interesantes y mas complejas.
 +
 +Aun así se ha dejado el material extra por si al alguien le interesa profundizar en el tema.
 +
 +</note>
 +===== Temas =====
 +
 +  * [[unidades:03_relaciones:01_uno_a_uno_direccional]]
 +  * [[unidades:03_relaciones:02_uno_a_uno_bidireccional]]
 +  * [[unidades:03_relaciones:03_uno_a_muchos_desordenada]]
 +  * [[unidades:03_relaciones:04_uno_a_muchos_ordenada]]
 +  * [[unidades:03_relaciones:05_muchos_a_muchos_desordenada]]
 +  * [[unidades:03_relaciones:06_cascade]]
 +  * [[unidades:03_relaciones:07_equals]]
 +===== Ejemplos =====
 +Todos los ejemplos de esta unidad se encuentran en github en [[https://github.com/logongas/cursohibernate/tree/master/ejemplos/unidad_03]]. \\ En caso de no disponer de git en el ordenador cliente se puede descargar en un fichero zip todos los ejemplos del curso desde {{https://github.com/logongas/cursohibernate/archive/master.zip}}
 +
 +  * **Ejemplo 01** \\ Relación 1 a 1 desde ''Profesor'' hacía ''Direccion'' (unidireccional) usando ficheros "''.hbm.xml''".
 +
 +  * **Ejemplo 02** \\ Relación 1 a 1 desde ''Profesor'' hacía ''Direccion'' (unidireccional) usando anotaciones de JPA.
 +
 +  * **Ejemplo 03** \\ Relación 1 a 1 entre ''Profesor'' y ''Direccion'' (bidireccional) usando ficheros "''.hbm.xml''".
 +
 +  * **Ejemplo 04** \\ Relación 1 a 1 entre ''Profesor'' y ''Direccion'' (bidireccional) usando anotaciones de JPA.
 +
 +  * **Ejemplo 05** \\ Relación uno a muchos entre ''Profesor'' y ''CorreoElectronico'' , pero sin ordenar,  usando ficheros "''.hbm.xml''".
 +
 +  * **Ejemplo 06** \\ Relación uno a muchos entre ''Profesor'' y ''CorreoElectronico'' , pero sin ordenar, usando anotaciones de JPA.
 +
 +  * **Ejemplo 07** \\ Relación uno a muchos entre ''Profesor'' y ''CorreoElectronico'' , ordenada ,  usando ficheros "''.hbm.xml''".
 +
 +  * **Ejemplo 08** \\ Relación uno a muchos entre ''Profesor'' y ''CorreoElectronico'' , ordenada , usando anotaciones de JPA.
 +
 +  * **Ejemplo 09** \\ Relación muchos a muchos entre ''Profesor'' y ''Modulo'' , usando ficheros "''.hbm.xml''".
 +
 +  * **Ejemplo 10** \\ Relación muchos a muchos entre ''Profesor'' y ''Modulo'' , usando anotaciones de JPA.
 +
 +  * **Ejemplo 11** \\ Ejemplo de uso de los métodos ''equals'' y ''hashCode''. Realizamos la comparación y añadir a un Set el mismo objetos obtenido en distintas sesiones. Con la clase ''Profesor'' los resultados son erróneos pero con la clase ''Usuario'' son correctos, ya que hemos sobreescrito los métodos ''equals'' y ''hashCode''.
 +===== Ejercicios =====
 +Los ejercicios de esta unidad se encuentran en [[ejercicios:unidad03]]