apuntes:hibernate
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
apuntes:hibernate [2019/02/19 15:48] – [Configuración] fernando | apuntes:hibernate [2024/09/16 16:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 117: | Línea 117: | ||
< | < | ||
< | < | ||
- | < | + | < |
< | < | ||
Línea 245: | Línea 245: | ||
configuracion.setProperty(" | configuracion.setProperty(" | ||
configuracion.setProperty(" | configuracion.setProperty(" | ||
- | configuracion.setProperty(" | + | configuracion.setProperty(" |
configuracion.setProperty(" | configuracion.setProperty(" | ||
Línea 266: | Línea 266: | ||
</ | </ | ||
- | Puedo utilizar //create// o //update//. Create crea la base de datos completa. Update la crea si no existe, y si ya existe simplemente modifica los cambios que haya habido | + | Puedo utilizar //create// o // |
- | Si quiero crear las claves ajenas de forma correcta, me interesa que el motor de datos de la base de datos sea //InnoDB//. Para ello debo añadir la instrucción de Java '' | + | Si quiero crear las claves ajenas de forma correcta, me interesa que el motor de datos de la base de datos sea //InnoDB//. |
==== Pool de conexiones ==== | ==== Pool de conexiones ==== | ||
Cuando un programa trabaja con una bbdd se deben abrir y cerrar conexiones con ella, y si el programa permite conectar diversos clientes, nos encontramos con el problema de conectar y desconectar conexiones a la base de datos. Un //pool// de conexiones es un conjunto (pool) de conexiones ya conectadas a la base de datos que puedan ser reutilizadas entre distintas peticiones. | Cuando un programa trabaja con una bbdd se deben abrir y cerrar conexiones con ella, y si el programa permite conectar diversos clientes, nos encontramos con el problema de conectar y desconectar conexiones a la base de datos. Un //pool// de conexiones es un conjunto (pool) de conexiones ya conectadas a la base de datos que puedan ser reutilizadas entre distintas peticiones. | ||
Línea 623: | Línea 623: | ||
Cuando realizamos relaciones bi-direccionales de las clases, desde Java podemos acceder a los elementos relacionados desde cualquier de los dos objetos de una relación. Para ello utilizaremos atributos únicos en el lado de '' | Cuando realizamos relaciones bi-direccionales de las clases, desde Java podemos acceder a los elementos relacionados desde cualquier de los dos objetos de una relación. Para ello utilizaremos atributos únicos en el lado de '' | ||
- | Aunque las relaciones sean bidireccionales, | + | Aunque las relaciones sean bidireccionales, |
===Relaciones 1:N=== | ===Relaciones 1:N=== | ||
- | En las relaciones | + | En las relaciones '' |
<code java> | <code java> | ||
Línea 661: | Línea 661: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | **Los métodos anteriores también se deben codificar en la clase // | ||
Además en esta clase //padre//, cuando borramos un arma también se borrarán los personajes relacionados con dicho arma en la base de datos, para mantener la integridad de las claves ajenas (personaje.id_arma). Si queremos que al borrar un arma no se borren los personajes en cascada, primero podemos eliminar las relaciones del arma con los personajes, antes de borrar el arma. Podemos realizarlo con un método utilitario: | Además en esta clase //padre//, cuando borramos un arma también se borrarán los personajes relacionados con dicho arma en la base de datos, para mantener la integridad de las claves ajenas (personaje.id_arma). Si queremos que al borrar un arma no se borren los personajes en cascada, primero podemos eliminar las relaciones del arma con los personajes, antes de borrar el arma. Podemos realizarlo con un método utilitario: | ||
Línea 677: | Línea 679: | ||
===Relaciones N:M=== | ===Relaciones N:M=== | ||
- | En las relaciones @ManytoMany ambas clases funcionan como //padre// y también como //hijo//, pero también identificamos una clase para propagar los cambios. En este caso los métodos utilitarios | + | En las relaciones @ManytoMany ambas clases funcionan como //padre// y también como // |
<code java> | <code java> | ||
Línea 728: | Línea 730: | ||
</ | </ | ||
- | Otro aspecto a tener en cuenta | + | **También debemos incluir los métodos en la clase // |
+ | |||
+ | Otro aspecto a tener en cuenta en las relaciones '' | ||
- | Del mismo modo, si queremos crear el esquema de la base de datos a partir de las clases mapeadas, solo usando colecciones tipo '' | + | Del mismo modo, si queremos crear el esquema de la base de datos a partir de las clases mapeadas, |
===== Proyectos de ejemplo ===== | ===== Proyectos de ejemplo ===== | ||
* [[https:// | * [[https:// |
apuntes/hibernate.1550591284.txt.gz · Última modificación: 2024/09/16 16:05 (editor externo)