我在我的服务层中使用了 @Transactional。如果我在两个更新服务方法上注释 @Transactional(使用默认设置),并且控制器方法调用这两个方法来执行其操作,那么这两个服务方法使用同一个事务吗?
看起来它们并不是,我正在寻找确认。在我看来,要让这两个方法使用同一个事务,我需要编写一个第三个服务方法,在其中注释 @Transactional,然后从那里调用原始的两个方法。
你说的一切都是正确的,包括如何绕过这个问题。现在可能是实施一个门面服务来协调所有其他服务的好时机。这样,使用的服务将参与门面服务的事务。
在我看来,那听起来是正确的。但你也应该考虑这两种方法是否应该有事务传播的默认设置。请参见此处并决定它应该是'REQUIRED'还是'SUPPORTS'?例如:@Transactional(propagation = Propagation.REQUIRED)