在@Transactional控制器中创建子事务

时间:2018-03-19 13:48:48

标签: java spring spring-transactions

我有控制器注释@Transactional。比有几个服务处理请求。我需要的是根据这些服务中的处理逻辑将该事务拆分为某些子事务。

如果我也注释了其中一些服务@Transactional,我认为它不会按预期工作。

如何注释服务类以创建子事务?

@RestController
@RequestMapping("/something")
@Transactional
public class SomeController {

    @Autowired
    private SomeService someService;

    @PostMapping("/endpoint")
    public void someEndpoint(@PathVariable final String id) {
        // do some work with service
    }
}

@Service
@Transactional(???)
public class SomeService {
    // some sub-transactional logic...
}

1 个答案:

答案 0 :(得分:1)

如果这些服务需要独立的交易,只需用

注释即可
@Transactional(propagation = Propagation.REQUIRES_NEW)