关于事务

关于事务

老师,我发现service实现类中类都是

@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)

而对于需要进行更新的方法,则在方法上添加

@Transactional(rollbackFor = Exception.class)

但这样这个方法依然属于

NOT_SUPPORTED

,我们不给更新类的方法加上事务吗(比如REQUIRED

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2023-10-23 09:19:40

同学你好,1、在方法上添加了@Transactional注解并指定了rollbackFor = Exception.class,表示在更新过程中发生任何异常,事务都将回滚。

2、为什么还是NOT_SUPPORTED,那是因在类级别使用@Transactional注解,方法需要进行更新操作时,其事务属性会自动继承类级别的事务属性 ,所以还是NOT_SUPPORTED。

祝学习愉快!

  • 提问者 tobeabee #1

    那我们这里为什么不在方法上把事务的传播属性设置为REQUIRED

    2023-10-23 09:34:37
  • 好帮手慕小尤 回复 提问者 tobeabee #2

    同学你好,1、在方法级别上设置传播属性不是一个常见或推荐的做法,通常建议在类级别使用@Transactional注解来统一管理事务,而不是在每个方法上都进行声明。类级别的注解可以应用于整个类中的所有方法,而不需要为每个方法单独声明事务属性。

    2、此处已经在类上统一处理了,所以就不需要单点在设置了。

    祝学习愉快!

    2023-10-23 09:52:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java工程师 2024版
  • 参与学习       2024    人
  • 提交作业       1318    份
  • 解答问题       1228    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师