设置
我在服务层中执行一些重量级的业务逻辑,其中我一个接一个地调用不同的DAO方法。比如:
myDao.persistOperationOne(myPersistentObject);
//.....Other business logic goes here
myDao.anotherPersistOperation(anotherPersistObject);现在,他们中的每一个都打开自己的会话,并在事务结束时提交事务。对于我来说,persistOperationOne()和anotherPeristOperation()都发生在某种事务上下文中是很重要的。
问题
如何在一个会话/事务上下文中将DAO逻辑合并到两个不同的方法中。我不喜欢在服务层中创建会话,这根本不是服务的关注点,不是吗?同时,在一个DAO方法中合并两个DAO逻辑将导致服务层业务逻辑被移动到DAO,这也是不可取的?
在这种情况下,是否有一种方法可以灵活地组织代码?
发布于 2014-03-20 12:24:29
我不喜欢在服务层中创建会话,这根本不是服务的关注点,不是吗?
实际上,管理事务是服务的责任。与您的情况一样,数据库上可能有多个操作,需要一次性完成,或者不执行操作,所以最好将它们包装在一个服务中,然后从那里提交。
https://stackoverflow.com/questions/22522872
复制相似问题