当前位置: 首页 > news >正文

spring声明式事务@Transactional注解继承问题

最近的遇到的几个项目,使用mybaits框架时,都喜欢抽象出AbstractService类,然后给各业务Service进行继承使用。但是AbstractService类确没有增加@Transactional注解,只有子类Service才增加了@Transactional注解,这就导致AbstractService类的方法操作时都没带事务的。

使用spring的声明式事务时,如果使用@Transactional注解,一定要注意注解只对当前类或方法有效,对继承的方法是无效的。但是如果是父类增加了@Transactional,由于此注解增加了@Inherited继承原注解,所以对子类是有效的。

例如 public class A extends B {...} 的情况,

(1)如果注解是加在A类名上,只会对A类下的方法进行事务拦截,父类B的方法是都不会有事务拦截的。

(2)如果注解是加在B类名上,对B类下的方法进行事务拦截,同时也会对子类A下的方法也进行事务拦截。


http://www.mrgr.cn/news/6371.html

相关文章:

  • 使用pyevtk导出结构化VTK网格以供后处理
  • 每日一问:深入探讨TCP与UDP的区别
  • MVCC 详解
  • 第二十六届中国机器人及人工智能大赛(智能驾驶)思路
  • Chromium编译指南2024 - Android篇:安装其他构建依赖项(七)
  • Java语言程序设计——篇十七(1)
  • RTOS实战项目之实现多任务系统
  • Vue3开始
  • Linux随记(十一)(部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2)
  • 软件开发者的首选:最佳Bug测试工具Top 10
  • Tensorboard
  • 【机器学习】4. 相似性比较(二值化数据)与相关度(correlation)
  • 责任链模式 和 状态模式
  • EKS开源系列之XF_UTILS工具库
  • Linux远程访问控制
  • Openstack 与 Ceph集群搭建(中): Ceph部署
  • 数据库;SQL语言; 数据库编程
  • 【在Linux世界中追寻伟大的One Piece】IO基础
  • 如何对 GitLab 中文版进行升级?
  • 大语言模型私有化部署和个性化调优的技术实践