He estado leyendo acerca de la implementación de sol modelo GenericDAO
y toma de Gavin King en esto para el uso con Hibernate. Parece que no menciona nada acerca de la manipulación de transacciones:¿Es un diseño deficiente para los DAO gestionar las transacciones?
public abstract class GenericHibernateDAO<T, ID extends Serializable> {
protected Session getSession() {
return HibernateUtil.getSessionFactory().getCurrentSession();
}
public T makePersistent(T entity) {
getSession().saveOrUpdate(entity);
return entity;
}
}
estoy desconcertado en cuanto a donde debo poner el inicio/final de la transacción. Actualmente se encuentran dentro de los DAOs que extender esta GenericHibernateDAO
public class FooHibernateDAO extends GenericHibernateDAO<Foo, Long> {
public Foo saveFoo(Foo foo) {
getSession().beginTransaction();
makePersistent(foo);
getSession().getTransaction().commit();
}
}
En caso de que el manejo de transacciones será administrado por la persona que llama de la DAO en el nivel de aplicación?
Eso es todo +1 - me lo ganaste –