spring jpa 自带page @Query 出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring jpa 自带page @Query 出错相关的知识,希望对你有一定的参考价值。
参考技术A jpa会在执行page方法时自动生成count,而在使用的时候回出错,原因在于他生成的sql存在问题。跳过复杂的debug追踪直接来到他的核心count生成地方。
可以看到此方法是一个废弃的方法 他说明DeclaredQuery#deriveCountQuery 但是在此处实现为
他会判断当前方法(@Query注解的方法)是否存在countQuery 如果存在则使用它 否则调用上边的方法。
而上方方法进行了一些正则匹配 最终匹配的结果会是 select count(where) 从而出现错误异常。
解决方案则为
1、注解中填写 countQuery 写完整的sql
2、注解中填写 countProjection 会在上方createCountQueryFor中替换成填写的字段 即 count($countProjection)
2、 在表名后面添加一个别名 指向一个字段(偏门)
建议使用方案一、二
以上是关于spring jpa 自带page @Query 出错的主要内容,如果未能解决你的问题,请参考以下文章