在使用springdata jpa时,利用@Query写原生的sql想要表名作为参数传递,发现springdata jpa会默认给参数添加单引号,导致报错。
1、表结构及数据
2、实体类
3、repository
因为需要使用到mysql的函数,所以使用的是原生sql,nativeQuery=true,这里默认是false。
4、测试
测试结果:
注意到会给我传入的表名添加单引号,导致sql语法异常。
5、解决方法
使用EntityManager创建本地查询,sql语句可以拼接表名。
测试结果