事务 - 并发代码组织问题。 - 休眠

时间:2014-03-20 03:26:45

标签: hibernate session transactions code-organization

设置

我在服务层执行一些重量级的业务逻辑,我一个接一个地调用不同的DAO方法。像:

myDao.persistOperationOne(myPersistentObject);
//.....Other business logic goes here
myDao.anotherPersistOperation(anotherPersistObject);

现在每个人都打开自己的会话并在最后提交事务。对我来说有点重要,persistOperationOne()和anotherPeristOperation()都发生在某种事务上下文中。

问题

如何在一个会话/事务上下文中以两种不同的方式为DAO逻辑提供支持。我不喜欢在服务层内创建会话,它根本不是服务的关注吗? 同时在一个DAO方法中同时使用DAO逻辑会导致服务层业务逻辑被移动到DAO,这也是不可取的吗?

在这种情况下,有没有办法整齐地组织代码?

1 个答案:

答案 0 :(得分:0)

  

我不喜欢在服务层内创建会话,它根本就不是   对服务的关注不是吗?

实际上,它负责管理交易。在您的情况下,数据库上可能有多个操作需要一次完成或没有,所以最好将它们包装在服务中并从那里提交。