gpt4 book ai didi

java - DAO 管理交易的设计是否糟糕?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:10 24 4
gpt4 key购买 nike

我一直在阅读有关 sun 蓝图 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;
}
}

我很困惑我应该把交易的开始/结束放在哪里。目前它们位于扩展此 GenericHibernateDAO

的 DAO 中
public class FooHibernateDAO extends GenericHibernateDAO<Foo, Long> {
public Foo saveFoo(Foo foo) {
getSession().beginTransaction();
makePersistent(foo);
getSession().getTransaction().commit();
}
}

事务处理是否应该由应用层的 DAO 调用者管理?

最佳答案

通常最佳做法是在服务层而不是 DAO 层管理事务。每个 DAO 方法通常处理一个特定的操作,一个服务方法将它们聚合在一个事务中。

关于java - DAO 管理交易的设计是否糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com