在做项目的时候,自己写了几个SQL语句,项目一启动就报错,关键的报错信息如下:
![是QuestionnaireRepository.deleteByQuestionnaireID(java.lang.String[])这个方法出现错误。](https://i-blog.csdnimg.cn/blog_migrate/0450e4f3c9fc9ab48d9f170507e1cf42.png)
在排查问题的时候发现是自己在使用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最省事了~
本文总结了在SpringBoot中自定义SQL语句时常见的错误,包括@Query注解后必须使用正确的类名,table应为大写类名,以及如何正确使用nativeQuery属性。通过实例展示了如何避免这些错误,确保项目顺利运行。
1472

被折叠的 条评论
为什么被折叠?



