繁体   English   中英

如何使用Spring和Hibernate为Web应用程序和批处理作业设置事务

[英]How to set-up transactions for both the web application and batch jobs using Spring and Hibernate

我有一个使用Spring 4.3和Hibernate 5.3的应用程序。

有一个具有表示层,服务层和DAO层的Web应用程序,还有一些共享相同服务和DAO层的作业。

使用@Transactional批注在不同的层中初始化事务。

这导致了我在这里描述的一个问题:使用Spring 4.3从外部事务控制内部事务设置

我阅读了一些有关如何设置事务以将Spring和Hibernate连接在一起的内容。 看起来,推荐的方法是在服务层中初始化事务。

我不喜欢的是,大多数事务之所以存在,仅仅是因为它们需要休眠才能正常工作。

而且,当我真的需要一项交易来调用多种服务方法的交易时,似乎没有选择继续从这些交易中初始化交易。 因此,将@Transactional批注从DAO移至服务似乎没有任何区别。

您如何建议为这种应用程序设置交易?

请原谅我的答复,因为我无法发表评论

我不知道您必须继续初始化工作中的交易吗?

通常用于

  • DAO类,应使用@Repository进行注释。
  • 具有@Service@Transactional服务类
  • web服务,如果u有,与@RestController@RequestMapping@Transactional

这样,来自服务类的任何调用将是1个事务,因此,如果服务类A调用服务B和C,即使服务类C引发错误,整个事务也将被回滚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM