Jam*_*mes 8 java hibernate data-access-layer
我一直在阅读关于太阳蓝图的GenericDAO实现和Gavin King对Hibernate的使用.他似乎没有提到有关交易处理的任何事情:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我很困惑我应该把交易的开始/结束放在哪里.目前,他们在DAO内部扩展了这一点GenericHibernateDAO
public class FooHibernateDAO extends GenericHibernateDAO<Foo, Long> {
public Foo saveFoo(Foo foo) {
getSession().beginTransaction();
makePersistent(foo);
getSession().getTransaction().commit();
}
}
Run Code Online (Sandbox Code Playgroud)
是否应该由应用程序层中DAO的调用者管理事务处理?