首页 > 其他分享 >为什么在有@Transactional注解的方法,一定要加rollbackFor异常回滚的异常类型?

为什么在有@Transactional注解的方法,一定要加rollbackFor异常回滚的异常类型?

时间:2024-05-08 17:47:44浏览次数:21  
标签:要加 回滚 抛出 Transactional rollbackFor 注解 Expection 异常

在spring项目中,@Transactional注解默认会回滚运行时异常(RuntimeException)及其子类

当你在一个有@Transactional注解方法里面抛了一个Expection类型的异常,呢它是不支持事务回滚的,

异常继承体系

我们在一个方法里面要对事务进行操作,如果要抛异常,应该抛出untimeException,不能直接抛出Expection,如果想抛出Expection异常,就得在注解后面加上回滚异常类型rollback=Expection.class

这样我们抛什么异常都可以,以为Expection是一个顶级父类,其他的Expection都直接继承或间接的基础与它

 

标签:要加,回滚,抛出,Transactional,rollbackFor,注解,Expection,异常
From: https://www.cnblogs.com/WWWHHHJJJBlog/p/18180357

相关文章

  • Python中级之异常处理+推导式
    【一】异常处理【一】什么是异常异常是程序运行时可能发生的错误或意外情况当出现异常时,程序的正常流程会被中断,出现报错界面【二】异常分类在Python中异常分为内建异常和用户自定义异常【1】BaseException(所有异常的基类)SystemExit:解释器请求退出KeyboardInterru......
  • Windows下使用ONNXRuntime的GPU进行推理时提示cudnn64_8.dll异常
    一、问题复现将模型放到GPU上推理时时发生的异常。OrtSessionOptionsAppendExecutionProvider_CUDA(session_options,0);...ort_outputs=session_.Run(Ort::RunOptions{nullptr},inputNames.data(),&input_tensor_,1,outNames.data(),outNames.size());二、解......
  • python-设计异常处理类Cexception,并基于异常处理类设计并实现日期类Date
    【题目描述】定义一个异常类Cexception解决日期类实现中的自定义异常处理。设计的日期类应包含以下内容:① 有三个成员数据:年、月、日;② 有设置日期的成员函数;③ 有用格式"月/日/年"输出日期的成员函数;④ 要求在日期设置及有参构造函数中添加异常处理。【源代码程序......
  • java异常报警
    `@Component@Aspect@Slf4jpublicclassServiceExceptionHandler{@ResourceExceptionWarnSendsend;//Service层切点@Pointcut("@annotation(mrh.com.modules.app.annotation.ServiceJobExcepCatch)")publicvoidserviceAspect(){}//全局异常注解@Around(&......
  • SpringBoot+Thymeleaf渲染下拉框异常解决
    常规方式<selectclass="form-control"name="operationType"th:field="${itemTemp.operationType}"style="width:80%"th:disabled="${readonly}"><optionvalue="">选......
  • 两个事务方法导致异常抛出Transaction rolled back because it has been marked as ro
    异常现场(背景)在springboot事物操作开发中,如果A方法调用B方法,A和B方法都在不同的类中,且A和B都加了@Transactional注解,A调用B方法时,将B方法trycatch了。代码:@ServicepublicclassBService{@Transactional(rollbackFor=Exception.class)publicvoidb......
  • cv::Mat转QImage导致图像色彩异常
    问题:1QPixmapMainWindow::opencvToQImage(constQString&str)2{3cv::MatcvImage=cv::imread(str.toStdString(),cv::IMREAD_REDUCED_COLOR_2);4cv::MatresizeMat;5cv::resize(cvImage,resizeMat,cv::Size(ui->label->width(),u......
  • 一次通过dump文件分析OutOfMemoryError异常代码定位过程
    OutOfMemoryError是Java程序中常见的异常,通常出现在内存不足时,导致程序无法运行。当出现OutOfMemoryError异常时,可能的现象是这样的。程序异常终止:OutOfMemoryError通常会导致程序异常终止。JVM无法为新对象分配内存时,会抛出该异常。堆内存不足:OutOfMemoryError表示堆内存......
  • Linux基础——BClinux8.2 排查vmcore异常宕机问题
     一、无法/var/crash生成文件1、参考配置:https://cloud.tencent.cn/developer/article/2367955 2、BCoe8.2调整配置   3、手动生成crashi.参考:参数详解https://blog.csdn.net/tombaby_come/article/details/134038949echo1>/proc/sys/kernel/sysrqechoc>/......
  • EFCore 迁移异常解决方案
    添加迁移时显示错误:Bothrelationshipsbetween'WorkCenter.Factory'and'Factory'andbetween'WorkCenter'and'Factory.WorkCenters'coulduse{'FactoryId'}astheforeignkey.Toresolvethis,configuretheforeig......