我一直在阅读有关太阳蓝图GenericDAO
的实现和Gavin King的采用这个与Hibernate一起使用。看来他没有提到有关事务处理的事情:DAO管理交易的设计很差吗?
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;
}
}
我困惑的是,我应该把交易的开始/结束。目前,他们是扩大这种GenericHibernateDAO
public class FooHibernateDAO extends GenericHibernateDAO<Foo, Long> {
public Foo saveFoo(Foo foo) {
getSession().beginTransaction();
makePersistent(foo);
getSession().getTransaction().commit();
}
}
如果该交易处理在应用层上的DAO的调用者管理的DAO的内部?
这就是它+1 - 你打我给它 – 2010-06-24 18:02:35