unidades:03_relaciones:06_cascade
no way to compare when less than two revisions
Diferencias
Muestra las diferencias entre dos versiones de la página.
— | unidades:03_relaciones:06_cascade [2023/04/07 21:26] (actual) – creado - editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Cascade ====== | ||
+ | Ya hemos visto en esta unidad cómo crear relaciones entre objetos y que al definirlas existe el atributo '' | ||
+ | ¿Cuál es el significado del atributo cascade? | ||
+ | El significado es indicar qué debe hacer hibernate con las clases relacionadas cuando realizamos alguna acción con la clase principal. | ||
+ | |||
+ | Es decir, si borramos la clase principal, ¿debería borrarse la clase relacionada? | ||
+ | |||
+ | ===== Ejemplos ===== | ||
+ | Antes de pasar a ver los distintos valores del atributo '' | ||
+ | |||
+ | ==== Director-Centro ==== | ||
+ | Si tenemos las siguientes clases Java: | ||
+ | |||
+ | <uml> | ||
+ | class Director | ||
+ | class Centro | ||
+ | |||
+ | Director " | ||
+ | </ | ||
+ | |||
+ | Es decir que un director pertenece a un centro y este centro tiene un único director. Hagámonos ahora una serie de preguntas: | ||
+ | * ¿Si borramos el director deberíamos borrar también el centro? **NO** | ||
+ | * ¿Si actualizamos el director deberíamos actualizar también el centro ((si ha cambiado algo))? **SI** | ||
+ | * ¿Si insertamos el director deberíamos insertar también el centro ((si no existe))? **SI** | ||
+ | En este caso el atributo '' | ||
+ | |||
+ | ==== Director-Direccion ==== | ||
+ | Si tenemos las siguientes clases Java: | ||
+ | |||
+ | <uml> | ||
+ | class Director | ||
+ | class Domicilio | ||
+ | |||
+ | Director " | ||
+ | </ | ||
+ | |||
+ | Es decir que un director reside en un domicilio y el domicilio pertenece a un único director. Hagámonos ahora las mismas preguntas que en caso anterior: | ||
+ | * ¿Si borramos el director deberíamos borrar también el domicilio? **SI** | ||
+ | * ¿Si actualizamos el director deberíamos actualizar también el domicilio ((si ha cambiado algo))? **SI** | ||
+ | * ¿Si insertamos el director deberíamos insertar también el domicilio ((si no existe))? **SI** | ||
+ | En este caso el atributo '' | ||
+ | |||
+ | ==== Director-Modulo ==== | ||
+ | Si tenemos las siguientes clases Java: | ||
+ | |||
+ | <uml> | ||
+ | class Director | ||
+ | class Modulo | ||
+ | |||
+ | Director " | ||
+ | </ | ||
+ | |||
+ | Es decir que un director imparte clases en varios módulos y cada módulo lo imparte un único director ((queda un poco raro pero creo que así se entiende el ejemplo)) hagámonos ahora las siguientes preguntas: | ||
+ | * ¿Si borramos el director deberíamos borrar también todos los módulos? **NO** | ||
+ | * ¿Si actualizamos el director deberíamos actualizar también los módulos ((si ha cambiado algo))? **SI** | ||
+ | * ¿Si insertamos el director deberíamos insertar también los módulos ((si no existen))? **SI**. | ||
+ | * ¿Si borramos algún módulo de las lista deberíamos borrar dicho módulo? **NO** | ||
+ | En este caso el atributo '' | ||
+ | |||
+ | ==== Director-CorreoElectronico ==== | ||
+ | Si tenemos las siguientes clases Java: | ||
+ | |||
+ | <uml> | ||
+ | class Director | ||
+ | class CorreoElectronico | ||
+ | |||
+ | Director " | ||
+ | </ | ||
+ | |||
+ | Es decir que un director posee varios correos electrónicos y cada correo electrónico pertenece únicamente a un director. Hagámonos ahora las siguientes preguntas: | ||
+ | * ¿Si borramos el director deberíamos borrar también todos los correos electrónicos? | ||
+ | * ¿Si actualizamos el director deberíamos actualizar también los correos electrónicos((si ha cambiado algo))? **SI** | ||
+ | * ¿Si insertamos el director deberíamos insertar también los correos electrónicos((si no existen))? **SI**. | ||
+ | * ¿Si borramos algún correo electrónico de las lista deberíamos borrar dicho correos electrónicos? | ||
+ | En este caso el atributo '' | ||
+ | |||
+ | ===== Valores ===== | ||
+ | Veamos ahora cada uno de los posibles valores del atributo '' | ||
+ | |||
+ | ^ Valor ^ Descripción ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | De todos los valores los realmente importantes, | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Los siguientes 5 valores generalmente querremos incluirlos ya que //no son peligrosos si los inclumos// aunque al hacerlo se podrían lanzar más SQL contra la base de datos: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Los siguientes 2 valores son agrupaciones de los 9 anteriores: | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | Así que lo //normal// es que el atributo '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <note tip>Mas información sobre los métodos | ||
+ | <javadoc h41> | ||
+ | <javadoc h41> | ||
+ | <javadoc h41> | ||
+ | <javadoc h41> | ||
+ | <javadoc h41> | ||
+ | en [[unidades: |
unidades/03_relaciones/06_cascade.txt · Última modificación: 2023/04/07 21:26 por 127.0.0.1