开发者社区> 问答> 正文

调用@GlobalTransactional不生效,xid为null

根据https://www.cnblogs.com/yhc-910/p/16735445.html文档进行的整合,但在获取xid时为null,手动抛出异常不回滚

展开
收起
1158135522630951 2022-12-30 16:57:41 533 0
1 条回答
写回答
取消 提交回答
  • 我猜测你可能使用了如下代码:

    String xid = request.getParameter("xid"); if(xid == null){ throw new Exception("xid is null"); }

    如果你在获取xid时返回了null,那么你就会抛出一个异常,但是并没有进行异常处理。这就导致了你手动抛出的异常不回滚。

    解决方法有两种:

    1。在抛出异常之前进行一些处理,使得异常能够正常回滚。例如,你可以使用try-catch语句来捕获并处理异常,或者使用事务注解来处理异常。

    2.在获取xid之前进行检查,如果xid为null,则返回一个错误信息,而不是抛出异常。这样就可以避免抛出异常,也不会导致数据不回滚。

    我建议你用下面的代码:

    String xid = request.getParameter("xid"); if(xid == null){ return "xid is null"; }

    希望这些信息能够帮到你。

    2022-12-30 22:42:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载