发布时间:2023-06-13 15:00
我这个注解失效真的是改到难受
同一个类中方法调用,导致 @Transactional 失效
开发中避免不了会对同一个类里面的方法调用,比如有一个类Test,它的一个方法A,A再调用本类的方法B(不论方法B是用public还是private修饰),但方法A没有声明注解事务,而B方法有。则外部调用方法A之后,方法B的事务是不会起作用的。这也是经常犯错误的一个地方。
那为啥会出现这种情况?其实这还是由于使用
Spring AOP
代理造成的,因为 只有当事务方法被 当前类以外的代码 调用时,才会由Spring
生成的代理对象来管理。
网上这么讲的 但是我直接是在service层调用的(还是报错)
可恶啊 网上找了一大堆 方法都没有用 难过 伤心 无力
报错的内容
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1e9e7ff0] was not registered for synchronization because synchronization is not active
2022-03-29 08:16:07.026 [http-nio-20219-exec-4] INFO com.zaxxer.hikari.HikariDataSource[110] - DateHikariCP - Starting...
2022-03-29 08:16:09.968 [http-nio-20219-exec-4] INFO com.zaxxer.hikari.HikariDataSource[123] - DateHikariCP - Start completed.
JDBC Connection [HikariProxyConnection@2132436291 wrapping com.mysql.cj.jdbc.ConnectionImpl@a9b7dec] will not be managed by Spring
代码如图:
我想了想会不会在service层 不同步 那我去controller加注解 测试