我在我的服务层中使用了@Transactional。如果我用@ transaction (使用默认设置)注释了两个更新服务方法,并且一个控制器方法正在调用这两个方法来执行其操作,那么这两个服务方法是否使用相同的事务?
看起来他们没有,我正在寻找这一点的确认。在我看来,为了让这两个方法使用相同的事务,我需要在服务中编写第三个方法,用@ transaction对其进行注释,然后从那里调用最初的两个方法。
发布于 2011-06-16 04:10:00
你所说的一切都是正确的,包括如何绕过这个问题。现在可能是实现一个用于协调所有其他服务的外观服务的好时机。这样,使用的服务将参与外观服务的事务。
发布于 2011-06-16 04:27:44
对我来说这听起来是对的。但您还应该考虑这两种方法是否应该具有事务传播的默认设置。查看here并决定它应该是'REQUIRED‘还是'SUPPORTS’?示例:@Transactional(传播= Propagation.REQUIRED)
https://stackoverflow.com/questions/6363683
复制相似问题