unidades:03_relaciones:06_cascade
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: | ||