码迷,mamicode.com
首页 > 其他好文 > 详细

JPA @Query ERROR. token : WHERE

时间:2020-06-09 12:49:37      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:select   ali   strong   str   bug   jpa   总数   and   通过   

在使用中,发现了一个JPA的bug。

错误:ERROR. token : WHERE

 

我在Dao层,使用@Query时,使用了jpa的Pageable分页。

@Query(value = "select * from Order where refSONo=:refSONo and IsValid = 1 /*#pageable*/", nativeQuery = true)
    Page<Order> findPagedList(@Param("refSONo") String refSONo, Pageable pageable);

 

当执行时,会出现2个sql语句。

1 select * from Order where refSONo=:refSONo and IsValid = 1 外加page分页 

2 会查询总数  select count(where) from Order where refSONo=:refSONo and IsValid = 1

 

但是很奇怪,查询总数时使用了count(where),导致报错:ERROR. token : WHERE

这应该是JPA正则匹配的一个Bug。

 

解决方案:where 换行

@Query(value = "select * from Order "+
" where refSONo=:refSONo and IsValid = 1 /*#pageable*/", nativeQuery = true)
    Page<Order> findPagedList(@Param("refSONo") String refSONo, Pageable pageable);

 

总结:通过换行产生的\r\n可以正确的引导正则匹配。

 

JPA @Query ERROR. token : WHERE

标签:select   ali   strong   str   bug   jpa   总数   and   通过   

原文地址:https://www.cnblogs.com/hanjun0612/p/13071790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!