spring 事务失效(spring同类方法调用事务失效)

spring 事务失效(spring同类方法调用事务失效)

首页维修大全综合更新时间:2024-03-02 15:00:03

spring 事务失效

Spring事务失效的几种原因。

1.数据库引擎不支持事务

在MySQL数据库中有几种引擎(InnoDB,MyISAM,Memory等等),仅仅InnoDB支持事务,如果数据库底层都不支持事务的话,那么再怎么折腾都是白搭. mysql的myisam引擎不支持事务操作,innodb才支持事务。从mysql5.5.5开始的默认存储引擎是innodb 之前默认都是myisam

2.没有被spring管理

因为事务使用的是代理类织入。如@Service注解被注解掉,则该bean不会被spring管理

3.方法不是public的,@transactional加在private方法上

@Transactional只能加在public方法上,如果需要在private方法中加入事务,可以使用Aspect配transactionManager使用.

4.自调用问题- 本类方法调本类另一个方法

调用该类自己的方法,而没有经过spring的代理类,默认只有在外部调用事务才会生效。解决方案之一是在类中注入自己,用注入的对象再调用另外一个方法。

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.