说明:以创建订单和更新订单为例
1.接口层
public interface OrderService extends IService<Order> {
/**
* 保存order,单独提交事务
*
* @param order
* @return
*/
Order saveOrderCommit(Order order);
/**
* 更新订单提交事务
*/
Order updateOrderCommit(Order order);
}
2.实现层:
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
/**
* 创建订单事务
* */
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@Override
public Order saveOrderCommit(Order order) {
order.insert();
return order;
}
/**
* 更新订单事务
* */
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@Override
public Order updateOrderCommit(Order order) {
order.updateById();
return order;
}
}
3.调用层
@Resource
private OrderServiceorderService;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateOrder() {
// 更新订单
order.setNumber(1);
orderService.updateOrderCommit(order);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrder() {
// 创建订单
Order order = new Order();
order.setNumber(2);
order.setId(134562);
order.setName("张三");
.;
orderService.saveOrderCommit(order);
}