JPA+Scheduled+SpringBoot 保存数据save没有相关SQL打印
Controller层调用有insert SQL日志打印,在定时任务中,没有insert SQL日志打印!
save 前后日志打印均正常!repository.save丝毫没有任何作用!!!
相同版本的SpringBoot和jpa,重新创建不依赖其他jar或者第三方的jar,未能重现此问题。
项目里使用的是,mapper解决的此问题,今天特意查找资料并进行处理了此问题!以下处理仅供参考!
问题现象:
JPA事务注解不生效,scheduled定时任务中没有insert SQL日志打印。
controller层调用,有insert SQL日志打印。
问题定位分析:
- 加了Transactional注解,方法里调用save()无错误打印且无insert语句日志。
2.执行saveAndFlus(),有错误,报org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress
由此可以确定,当前方法执行确实没有被事务管理器管理起来!
- 确定注解Transactional没有与对应的事务管理器保持一致
- 启动类打印当前使用的事务管理器,依赖的中台jar包中统一定义了事务管理器,支持Mybatis-plus