Practica Hibernate

Páginas: 16 (3959 palabras) Publicado: 1 de abril de 2014
Persistencia con Hibernate
Parte 2
Ingeniería de la Programación
Práctica 7
2011/2012

Visión detallada de Hibernate

El ciclo de vida de persistencia
• La lógica de la aplicación opera con objetos
independientemente de su naturaleza: persistentes
(obtenidos de una base de datos) o temporales
(transitorios, existentes únicamente en memoria).
• La aplicación para hacerpersistente su estado tiene
que interactuar con la capa de persistencia, ya sea para
propagar su estado desde memoria a la base de datos,
o bien a la inversa para obtener el estado desde la base
de datos.
• En Hibernate para realizar las operaciones anteriores se
utiliza el gestor de persistencia y las interfaces de
consulta.

Objetos transitorios
• Los objetos instanciados mediante new no sonpor
defecto persistentes.
• Su estado es transitorio, es decir no están asociados
con ninguna tupla de la base de datos.
• Su estado desaparece (vía el mecanismo java de recoge
basura) cuando dejan de estar referenciados.
• Los objetos referenciados por objetos transitorios son
también considerados transitorios.
• Para convertirlos en persistentes se utiliza el método
save() delgestor de persistencia de Hibernate.
• No existe ningún mecanismo de rollback para objetos
transitorios, ya que no son transaccionales.

Objetos persistentes
• Los objetos persistentes son instancias que poseen una identidad en la
base de datos (i.e. tienen un atributo que es una clave primaria de una
tabla de la BD).
• Pueden ser el resultado de una consulta sobre la base de datos, puedenhaber sido creados como transitorios y estar asociados al gestor de
persistencia mediante el método save(), o bien pueden haber sido creados
desde un objeto persistente.
• Las instancias persistentes están asociadas con una sesión (explicado
después) y son transaccionales (i.e admiten rollback y commit)
• Las instancias persistentes participan en transacciones y su estado se
sincronizacon la base de datos cuando ésta termina.
• Hibernate posee una estrategia (automatic dirty checking) para detectar
qué objetos persistentes han sido modificados durante la ejecución de una
transacción, y gestiona de manera transparente la modificación en la base
de datos (actualización, borrado, inserción).
• Por defecto en una actualización modifica todos los campos de la tabla,
puedecambiarse el comportamiento (modificar únicamente los campos
necesarios) si en el archivo de mapping de la clase se utiliza:
– Dynamic-update =“true”

Objetos separados/independientes
• Los objetos persistentes se convierten en separados cuando
termina una transacción y se cierra una sesión del gestor de
persistencia.
• Desde ese momento no se garantiza que su estado esté
sincronizadocon el estado de los objetos que existen en la
base de datos.
• Si siguen referenciados por la aplicación, pueden ser
reutilizados en una nueva sesión con lo cual se convierten
de nuevo en persistentes.
• La operación evit() es una operación de separación explícita
de objetos, se utiliza normalmente por consideraciones de
eficiencia de la caché (explicado después).

El gestor depersistencia
• Cualquier gestor de persistencia transparente
proporciona una API con servicios para:





Operaciones básicas CRUD (Create, Read, Update, Delete).
Ejecución de consultas.
Control de transacciones.
Gestión de la caché a nivel de transacciones.

• En Hibernate se emplean diferentes interfaces: Session,
Query, Criteria y Transaction para poder utilizar el
gestor depersistencia.
• La interfaz más importante, aunque todas están
relacionadas, es Session, normalmente se asocia con el
gestor de persistencia (i.e session y gestión de
persistencia se consideran términos intercambiables).

Convertir en persistente un objeto
• Dentro de una sesión para convertir un objeto transitorio en persistente se
utiliza el método save().
User user = new User();...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • hibernate
  • Hibernate
  • HIBERNATE
  • hibernate
  • Hibernate
  • Tutorial Hibernate
  • Hibernate referencia
  • Hibernate

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS