这个错误是我在写测试的时候出现的,写的是@Transactional(rollbackFor = Exception.class)+TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();用的手动回滚。
后来改成了自动回滚就没事了。
查了一下发现有的人是没有手动回滚报这个错,其解释是:
在一段数据库操作中添加了事务注解@Transactional(rollbackFor = Exception.class),但是代码中有try catch所以相当于自己捕获,未往外抛,相当于没有异常,所以事务不起作用。建议手动回滚。
但是具体原因还有待发现,以下是参考:
org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionSta
SpringBoot+Shiro引起事务失效、错误原因、解决方法
这个错是别人问我的,其实碰到包这些没下下来的问题,我都是重新下,不管是去文件下删了重新下、换镜像重新下还是去拷贝别人的包都可以。
这是其他的参考:pom文件报错Failed to read artifact descriptor for org.springframework;spring-web:jar:5.1.8RELEASE
如果你一直下不下来,换了镜像也是,那就得考虑是不是其他问题:
1.如果你点了这个离线模式,那你真是下了个寂寞:
2.也有可能公司换服务器,如果你一直用原来的私服地址下依赖的话也下了个寂寞;
这个错误就是要检查sql语句,可能原本语句没问题,但是参数有问题。
我的错误原因是,
标签里面忘了加separator=","
。这个本来很好发现,但是我忽略了这个地方,总以为自己写的没问题,反而去其他地方找错误。
为什么会忽略呢?我把控制台打印的语句和参数都复制到Navicat执行发现没错。但是,控制台打印的list里面的参数是自动有个逗号。所以我用参数去替换问号的时候就直接忽略了逗号。
参考:mybatis报错The error occurred while setting parameters的解决办法
原因:mapper.xml写语句的时候按alt+enter提示了一个use SQL啥的,也就是使用方言,一点就红。
解决:idea操作步骤:file->setting->Appearance & Behavior-> Languages & Frameworks -> SQL Dialects
把右边的Global SQL Dialect 的MySQL 设置为 None,然后Apply-> OK。
参考:idea里面Mybatis的xml基础配置文件表名、字段、别名报红问题的解决!
数据库方言(dialect)是什么?
compiler message file broken: key=compiler.misc.msg.bug arguments=11.0.2, {
1}, {
2}, {
3}, {
4}, {
5}, {
6}, {
7} java.lang.NullPointerException at
jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1235) at
jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1634) at
jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at
jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:398) at
jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef(Flow.java:989)
代码在本地可以正常启动,在环境上跑就报这个错,因为jdk版本不同。我本地的是11.0.7(网上说11.0.7也有同样问题,但是我没有)。12是完全修复了。
代码是这样:new ParameterizedTypeReference<>(){}
要改成new ParameterizedTypeReference
就都能跑。当然还有升级jdk的办法等其他:
参考:参考1,参考2