La web de consultoriajava.com, la web de los auténticos expertos en Java

Ir a inicio

Objetivos

Know-How Java

Know-How de Negocio

Artículos

Contactar


Servicios de consultoria

Análisis y Diseño

Aportación de Know-How

Arquitectura Java EE

Auditoria de Proyectos

Formación experta

Gestión de proyectos

Preparación de equipos

Refactoring de sistemas

Reingeniería de proyectos

Selección de personal



Herramientas Java

Hibernate - capa de persistencia



Hibernate, un mecanismo para facilitar el acceso a BBDD relacionales:

Una herramienta parecida a Torque, pero con importantes diferencias cuando se emplea en entornos reales.

Con Hibernate es posible implementar un mapeo de las BBDD relaciones previamente existentes, de manera que nuestro modelo de datos podría existir a priori, nosotros simplemente construimos un servicio que nos permite llegar a los datos de forma sencilla.

Hibernate se está convirtiendo en el estandar de facto para almacenamiento persistente cuando queremos independizar la capa de negocio del almacen final de información, una alternativa interesante a los EJBs que en algunos escenarios se usa de forma complementaria.

Esta capa de persistencia permite abstraer al programador Java de las particularidades de una determinada BBDD proveyendo clases Java que envolverán (patrón de diseño Wrraping) los datos recuperados de los registros de las tablas.

Una de las principales características desde el punto de vista de la programación es que mediante Hibernate no emplearemos habitualmente SQL para acceder a datos sino que el propio motor de Hibernate, mediante el uso de factorías (patrón de diseño Factory) y otros elementos de programación construirá esas consultas para nosotros.

Si necesitamos hacer consultas muy complejas con JOINs o múltiples tablas involucradas y cláusulas WHERE extremadamente complejas Hibernate pone a disposición del diseñador un lenguaje llamado HQL (Hibernate Query Language) que permite acceder a datos mediante P.O.O., una interesante alternativa mediante al lenguaje estructurado de SQL.

Para su configuración Hibernate utiliza obviamente ficheros XML que permiten mapear a clases Java las tablas existentes en la BBDD así como configurar las claves ajenas existentes entre otras cosas. Este fichero llamado hibernate.sql o hibernate-moduloxxx.xml (según se este empleando en su versión básica o aplicada a un proyecto real) proporciona el principal punto de configuración de Hibernate y aunque se puede editar con herramientas de generación automática de código es mejor modificarlo manualmente.

Hibernate al igual que otras muchas API’s se emplea en proyectos con gran éxito, pero también ha dado lugar a conocidos fracasos, debido entre otros muchos factores a la excesiva complejidad de su administración y a la falta de know-how especifico sobre persistencia, concurrencia y modularidad que los programadores que usan Hibernate suelen presentar.

El principal problema con Hibernate es que pone el poder de la BBDD al alcance de cualquier programador con poca experiencia, esto en teoría debería ser una ventaja, pero como ha demostrado la realidad, es mejor tratar a los datos de la empresa con respecto, conocimiento y sobre todo experiencia.