Si utilizamos Spring integrado con Hibernate disponemos de una clase HibernateDaoSupport en la que se incluyen las operaciones básicas de acceso a datos y también otros métodos para poder ejecutar sentencias más complejas, que muchas veces necesitaremos, estas sentencias se incluirán en los ficheros hbm.xml de mapeo, escritas en HQL (el sql de hibernate).
En cyberHotel hemos creado una clase que hereda de HibernateDaoSupport que hemos nombrado AbstractSpringDao y todos los DAO’s heredan a su vez de esta última (en los libros se suele denominar patrón Layer Supertype).
Para que todo funcione el fichero applicationContext.xml deberá de estar correctamente configurado, de forma que los DAO’s conocen los distintos ficheros de mapeo.
Todos los DAO’s se ocultan mediante el patrón Fachada que hemos mencionado en un post anterior, que utilizará estos para implementar la lógica de negocio de la aplicación y ocultará también las tecnologías empleadas, proveyendo al modelo de una interfaz hacia las demás capas (vista y controlador) que actuarán como clientes del modelo.
Un ejemplo de DAO en cyberHotel es el siguiente:
