设置
我在服务层执行一些重量级的业务逻辑,我一个接一个地调用不同的DAO方法。像:
myDao.persistOperationOne(myPersistentObject);
//.....Other business logic goes here
myDao.anotherPersistOperation(anotherPersistObject);
现在每个人都打开自己的会话并在最后提交事务。对我来说有点重要,persistOperationOne()和anotherPeristOperation()都发生在某种事务上下文中。
问题
如何在一个会话/事务上下文中以两种不同的方式为DAO逻辑提供支持。我不喜欢在服务层内创建会话,它根本不是服务的关注吗? 同时在一个DAO方法中同时使用DAO逻辑会导致服务层业务逻辑被移动到DAO,这也是不可取的吗?
在这种情况下,有没有办法整齐地组织代码?
答案 0 :(得分:0)
我不喜欢在服务层内创建会话,它根本就不是 对服务的关注不是吗?
实际上,它负责管理交易。在您的情况下,数据库上可能有多个操作需要一次完成或没有,所以最好将它们包装在服务中并从那里提交。