Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过JPA存储库中的本机查询和sql查询获得不同的顺序_Mysql_Spring_Spring Data Jpa - Fatal编程技术网

Mysql 通过JPA存储库中的本机查询和sql查询获得不同的顺序

Mysql 通过JPA存储库中的本机查询和sql查询获得不同的顺序,mysql,spring,spring-data-jpa,Mysql,Spring,Spring Data Jpa,我的jpa查询是 @Query(value="SELECT area FROM hoardings WHERE area LIKE %?1% GROUP by area order by instr(area, ?1)", nativeQuery=true) public List<String> searchByArea(String area); SELECT area FROM 'hoardings' WHERE 'area' LIKE '%n%' GROUP by

我的jpa查询是

@Query(value="SELECT area FROM hoardings WHERE area LIKE %?1% GROUP by area order by instr(area, ?1)", nativeQuery=true)
    public List<String> searchByArea(String area);
SELECT area FROM 'hoardings' WHERE 'area' LIKE '%n%' GROUP by area order by instr(area, 'n')
我认为JPA原生查询不支持传递参数的order by。还有别的办法解决这个问题吗。谢谢

更改为-

@Query(value="SELECT area FROM hoardings WHERE area LIKE %:area% GROUP by area order by instr(area, :area)", nativeQuery=true)
public List<String> searchByArea(String area);
@Query(value=“从围板中选择面积,其中面积如%:面积%按面积顺序按仪表分组(面积,:面积)”,nativeQuery=true)
公共列表搜索区域(字符串区域);

spring为该查询生成的sql是什么-与您的查询相同吗?您的JPA不应该是“%”1%而不是“%”1%?休眠:从围板中选择区域,该区域类似于?按区域分组按指令(area,?)更改为从围板中选择区域,其中区域类似于?1按区域分组按指令按指令(area,?1)并在区域字符串中传递%%,还将第二个参数重命名为area 2-可能会混淆spring数据在此“?”1之后spring将其理解为字符串而不是参数,这是spring生成的查询。谢谢@farrellmr。它的works Now我还通过了带区域的“%”。类似字符串area=“%”+area+“%”。未在sql中添加%s。它现在起作用了