Uso de Filtros en Hibernate

Filtros en Hibernate

Normalmente las aplicaciones necesitan procesar en cada momento sólo un subconjunto de los datos disponibles.

Aunque se puede conseguir los mismo a través de otros métodos (normalmente consultas HSQL), los filtros nos permiten realizar esta tarea de una forma administrable, parametrizable y centralizada mediante los archivos de mapeo de hibernate.

A continuación vamos a ver un sencillo ejemplo de la creación y el uso de filtros. Para ello crearemos una sencilla BD que almacene datos de empleados, y luego crearemos un filtro para que filtre resultados por el género (masculino o femenino) de cada empleado.

Un ejemplo

Script de creación de la BD MySql.

A continuación vemos la clave Empleado.

Empleado.java

A continuación mostramos una aplicación de escritorio autocomentada en el que se hace uso del filtro (líneas 46, 47 y 53).

SimpleFilterApp.java

A continuación, mostramos el fichero de configuración de Hibernate:

hibernate.cfg.xml

A continuación, mostramos el fichero de mapeo de la clase Empleado:

Empleado.hbm.xml

Sobran comentarios, verdad?? se ve claramente como se definen el filtro (lineas 16, 17 y 18) y como se asocian a las clases (linea 13).

Conclusiones

Aunque los filtros tienen limitaciones, especialmente que no se pueden crear filtros en tiempo de ejecución.
En ciertas ocasiones pueden ser una solución a tener en cuenta, pues nos pueden evitar tener que reescribir las consultas de acceso a los datos que aparecen a lo largo de la aplicación, estableciendo simplemente los filtros necesarios cuando se crea la sesión.

Un saludo.
Carlos García. Creador de MobileTest.