Ho letto sull'implementazione del modello di sole GenericDAO
e su quello di Gavin King per l'uso con Hibernate. Sembra che non menziona nulla sulla gestione delle transazioni:È una progettazione scadente per i DAO gestire le transazioni?
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;
}
}
Sono perplesso su dove devo mettere l'inizio/fine della transazione. Attualmente sono all'interno dei DAO che estendere questo GenericHibernateDAO
public class FooHibernateDAO extends GenericHibernateDAO<Foo, Long> {
public Foo saveFoo(Foo foo) {
getSession().beginTransaction();
makePersistent(foo);
getSession().getTransaction().commit();
}
}
caso in cui la gestione delle transazioni essere gestito dal chiamante del DAO nel livello di applicazione?
Questo è tutto +1 - mi hai battuto su di esso –