数据库的订单表不会回滚
来源:14-12 章节思考题

音乐流星
2022-06-07
老师,我这研究了很多天。1.41-1.51,每个版本都测试了。
无论是怎么抛异常, 这个订单表都会生成一条订单, 不会回滚删除。
seata相关的表和 undo_log都是有任何内容。 这应该怎么排查呢?
数据源代理的问题吗?
@GlobalTransactional(rollbackFor = Exception.class)
public TableId createOrder(OrderInfo orderInfo) {
//...
// 2. 创建订单
Order newOrder = orderDao.save(
new Order(
AccessContext.getLoginUserInfo().getId(),
orderInfo.getUserAddressId(),
JSON.toJSONString(orderInfo.getOrderItems())
)
);
if (1 != 2) {
throw new RuntimeException("直接抛异常测试回滚----------");
}
...
写回答
1回答
-
张勤一
2022-06-07
同学你好:
这其实和版本的关系不大,看起来就是因为数据源代理不成功导致的,因为 Seata 其实就是 AOP,帮助我们做了 try catch,所以,还是好好看看数据源配置的地方。
10
相似问题