在做项目的时候,自己写了几个SQL语句,项目一启动就报错,关键的报错信息如下:
在排查问题的时候发现是自己在使用SpringBoot框架自定义SQL语句时没注意几个小问题:
- @Query后面必须用类名
table处应该是类名,所以应该是大写的,否则就会报错。(我就是用成了小写报错的)
例如:
@Modifying
@Query(value = "delete from Table where id in (?1)")
Integer deleteByid(String[] id);
//table处应该是类名,所以应该是大写的,否则就会报错
- 原生SQL加上nativeQuery = true,不然就按照默认HQL了。(加上“nativeQuery = true”后,@Query后面就不用必须用类名了,可以使用表名)
例如:
@Modifying
@Query(value = "delete from table where id in (?1)",nativeQuery=true)
Integer deleteByid(String[] id);
综上所述,在原生SQL加上nativeQuery = true最省事了~