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下的方法也进行事务拦截。

相关推荐
迷了璐的航几秒前
mybatis解决查询中使用group by时出现sql_mode=only_full_group_by
数据库·sql·mybatis
行思理2 分钟前
macos 如何清空IntelliJ IDEA安装记录
java·macos·intellij-idea
金仓拾光集2 分钟前
「安全升级 + 零代码平替」金仓数据库如何实现MongoDB社交动态发布系统的无缝迁移?
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
金仓拾光集8 分钟前
告别“凭感觉”告警,金仓数据库替换MongoDB让运维更精准
运维·数据库·mongodb·kingbase·数据库平替用金仓·金仓数据库·kingbasees·
FinTech老王14 分钟前
金仓替换MongoDB:金融交易数据一致性新解
数据库·mongodb·1024程序员节
g323086321 分钟前
Milvus知识
数据库·milvus
信码由缰23 分钟前
Java 运行时安全:输入验证、沙箱机制、安全反序列化
java
测绘小沫-北京云升智维23 分钟前
CG-5重力仪外壳漏电怎么办?
数据库·经验分享
Dying.Light25 分钟前
Java基础复习-中-集合
java
Felicity_Gao28 分钟前
uni-app 开发APP应用媒体处理与文件管理功能
java·uni-app·媒体