我有一个使用Spring 4.3和Hibernate 5.3的应用程序。
有一个带有表示层,服务层和DAO层的Web应用程序,以及一些共享相同服务和DAO层的作业。
使用@Transactional注释在不同的层中初始化事务。
它引发了我在这里描述的问题:使用Spring 4.3从外部事务控制内部事务设置
我读了一些关于如何设置事务以将Spring和Hibernate连接在一起的内容。看起来推荐的方法是初始化服务层中的事务。
我不喜欢的是大多数交易只是因为hibernate正常工作所必需的。
当我真的需要一个调用多种服务方法的作业的事务时,似乎我没有选择继续从作业初始化事务。因此,将@Transactional注释从DAO移动到服务似乎没有任何区别。
您如何建议为此类应用设置交易?
答案 0 :(得分:0)
请原谅我答复,因为我无法发表评论
我不明白你必须继续从工作中初始化交易?
通常为
Name: https_proxy
进行注释。@Repository
和@Service
@Transactional
,@RestController
,@RequestMapping
。通过这样做,来自服务类的任何调用都将是1个事务,因此如果服务类A调用服务B和C,即使服务类C抛出错误,整个事务也将回滚。