使用Spring,我遇到以下情况。
我有一个必须为@Transactional
的服务,因为它调用了多个DAO。但它也会调用已经@Transactional
的其他服务。
不知何故,我将调用嵌套@Transactional
服务。
Spring会管理好吗?
答案 0 :(得分:2)
@Transactional
使用propagation = REQUIRED
。这意味着:
用@Transactional
注释的第二服务(嵌套服务)将在与第一服务(外部服务)相同的事务中执行。您无需执行任何操作。
在某些情况下,如果您想将嵌套调用与外部调用明确分开,则可以使用propagation = REQUIRES_NEW
。