2017-08-29 48 views
0

我有一个使用Spring 4.3和Hibernate 5.3的应用程序。如何使用Spring和Hibernate设置Web应用程序和批处理作业的事务

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

事务使用@Transactional注释在不同的层进行初始化。

这导致我在这里我所描述的问题:控制来自外部事务内部事务设置与Spring 4.3

我读了一些关于如何建立交易接线Spring和Hibernate一起。看起来推荐的方法是初始化服务层中的事务。

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

当我真的需要一个调用多个服务方法的工作事务时,似乎我没有选择从作业中初始化事务。因此,从DAO移动@Transactional注释到服务似乎没有任何区别。

您会如何建议设置此类应用程序的交易?

回答

0

原谅我在回答回答,因为我无法评论

我不明白,你必须保持从作业初始化交易的意思吗?

通常对于

  • DAO类,它应该与@Repository注解。
  • 服务类@Service@Transactional
  • web服务,如果u有,与@RestController@RequestMapping@Transactional

通过这样做,从服务类的任何呼叫将1个交易因此,如果服务类A调用服务B和C,即使服务C类抛出错误,整个交易将回滚。

相关问题