Relanza la excepción envuelta en una RuntimeException
mediante: throw new RuntimeException(ex);
BussinessException
Se relanza sin ser modificada, mediante:. throw ex;
Avisa que los datos de las entidades contienen algún
tipo de error que debe ser modificado.
Ventajas
Unificar el
tratamiento de
las excepciones
Simplificar el uso de
javax.validation.ConstraintViolationException
Mejorar los mensajes de error
El código de BussinessException
DAO
Problema del patrón
DAO es la repetición
de código para cada
una de las entidades.
Los interfaces
Los objetos DAO son
interfaces asi se pueden
tener varias
implementaciones para
cada interfaz
Para evitar definir los
mismos métodos en cada
interfaz DAO se ha creado un
interfaz padre
Creando un nuevo
objeto DAO
Crear un nuevo interfaz que herede de una interfaz padre. El
ejemplo es el siguiente: public interface MunicipioDAO
extends GenericDAO<Municipio,Integer> { }
Crear una nueva implementación para Hibernate que herede e
implemente la interfaz. El ejemplo es el siguiente: public class
MunicipioDAOImplHibernate extends
GenericDAOImplHibernate<Municipio,Integer> implements
MunicipioDAO { }
Crear objetos DAO desde la aplicación, codigo de
ejemplo: UsuarioDAO usuarioDAO = new
UsuarioDAOImplHibernate(); ProfesorDAO
profesorDAO = new ProfesorDAOImplHibernate();
Paquetes
Clases de un proyecto organizadas en paquetes
Hay dos paquetes pricnipales
com.fpmislata.persistencia
Van las clases relacionadas
con la persistencia pero que
se reutilizan en los diversos
proyectos.
Dentro de el hay 3 paquetes
com.fpmislata.persistencia.dao:
Tiene todo los relacionado con el
interfaz DAO.
com.fpmislata.persistencia.dao.impl:
Contiene la implementación genérica
del interfaz DAO.
com.fpmislata.persistencia.hibernate: Contiene la
clase de utilidad de Hibernate .
ejemplo04
Aquí ponemos las clases
que son específicas de
nuestro proyecto.
Dentro hay 4 paquetes
ejemplo04.dominio
ejemplo04.persistencia.dao
ejemplo04.persistencia.dao.impl
ejemplo04.presentacion
HibernateUtil
SessionFactory
3 formas de acceder al
objeto SessionFactory
Inyección de
Dependencias.
A cualquier objeto se le asigna una
referencia a SessionFactory mediante
el uso de un framework de Inyección
de Dependencias.
Objeto global.
Tener a SessionFactory como
una variable global así cualquier
objeto puede acceder a él .
Paso del objeto
entre clases.
Pasar el objeto SessionFactory
por todos los objetos hasta
llegar al que lo necesita.
Debe ser creada ya que no está
incluida en Hibernate
Contiene código
(método) estático
Inicializa Hibernate, crea y da
acceso al objeto SessionFactory
El código que genera NetBeans para la clase HibernateUtil