问题背景
在做app作业一的第二部分时,遇到了问题(自以为是问题,没想到老师是故意让我们发现这是个bug)。
flowchart LR; A(OrderController::createOrder) --> B(OrderService::createOrder); B --> C(OrderDao::addOne); B --> D(OrderItemDao::addList);
如图,在电子书服务系统E-Book
中,我们进行订单创建,一个订单order
中包含多个订单项orderItem
。
现在我们要对OrderService::createOrder
,OrderDao::saveOne
和OrderItemDao::saveList
进行事务传播控制,分别简称三部分为A,B,C。
若A和B设置为REQUIRED
,而C设置为REQUIRES_NEW
,则会出现死锁问题。