Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura
2.1.
2.2.
2.3.
2.4.
2.5.
Sinopsis
Estados de instancia
Integracin JMX
Soporte JCA
Sesiones contextuales
2.1. Sinopsis
El diagrama a continuacin brinda una perspectiva a alto nivel de la arquitectura de Hibernate:
Este documento no incluye una sinopsis detallada de la arquitecturas en tiempo de ejecucin disponibles;
Hibernate es flexible y soporta diferentes enfoques. Sin embargo, mostraremos los dos extremos: la arquitectura
"mnima" y la arquitectura "completa".
Este diagrama ilustra la manera en que Hibernate utiliza la base de datos y los datos de configuracin para
proporcionar servicios de persistencia y objetos persistentes a la aplicacin.
La arquitectura "mnima" hace que la aplicacin proporcione sus propias conexiones JDBC y que administre sus
propias transacciones. Este enfoque utiliza un subgrupo mnimo de las APIs de Hibernate:
La arquitectura "completa" abstrae la aplicacin de las APIs de JDBC/JTA y permite que Hibernate se encargue de
los detalles.
correspondiente en la base de datos. Para las instancias separadas, Hibernate no establece ninguna
garanta sobre la relacin entre identidad persistente e identidad Java.
automticamente al mbito de una transaccin JTA. Esto significa que ya no tiene que abrir ni
cerrar la Session manualmente, esto pasa a ser el trabajo de un interceptor EJB de JBoss. Adems
tampoco tiene que preocuparse ms de la demarcacin de la transaccin en su cdigo (a menos de
que quiera escribir una capa de persitencia porttil, utilice la API de Transaction de Hibernate para
hacer esto). Para acceder a una Session llame alHibernateContext.
Despliegue HAR:: el servicio JMX de Hibernate se implementa usando un descriptor de despliegue
de servicio de JBoss en un archivo EAR y/o SAR, que soporta todas las opciones de configuracin
usuales de una SessionFactory de Hibernate. Sin embargo, todava tiene que nombrar todos sus
archivos de mapeo en el descriptor de despliegue. Si utiliza el depliegue HAR opcional, JBoss
detectar automticamente todos los archivos de mapeo en su archivo HAR.
Para ms informacin sobre estas opciones, consulte el Manual de Usuario de JBoss AS.
Another feature available as a JMX service is runtime Hibernate statistics. See Seccin 3.4.6, Estadsticas
de Hibernate for more information.
The first two implementations provide a "one session - one database transaction" programming model.
This is also known and used as session-per-request. The beginning and end of a Hibernate session is
defined by the duration of a database transaction. If you use programmatic transaction demarcation in
plain JSE without JTA, you are advised to use the Hibernate Transaction API to hide the underlying
transaction system from your code. If you use JTA, you can utilize the JTA interfaces to demarcate
transactions. If you execute in an EJB container that supports CMT, transaction boundaries are defined
declaratively and you do not need any transaction or session demarcation operations in your code. Refer
to Captulo 12, Transacciones y concurrenciafor more information and code examples.
El parmetro de configuracin hibernate.current_session_context_class define cuales
implementacionesorg.hibernate.context.CurrentSessionContext deben utilizarse. Para compatibilidad con
versiones anteriores, si este parmetro de configuracin no est establecido pero si tiene configurado
unorg.hibernate.transaction.TransactionManagerLookup, Hibernate utilizar
el org.hibernate.context.JTASessionContext. Usualmente el valor de este parmetro slamente nombrara la
clase de implementacin a utilizar. Sin embargo, para las tres implementaciones includas existen tress
nombres cortos: "jta", "thread" y "managed".