自定义@Query 中使用分页
来源:互联网 发布:网络销售的薪资 编辑:程序博客网 时间:2024/06/06 05:41
1.问题由来:
有一个比较复杂的sql请求,所以自定义sql写起来比较顺手,也比较清晰,但是不能直接使用,Pageable进行分页,需要进行一系列配置。
2.解决方案:
public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 ORDER BY ?#{#pageable}", countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", nativeQuery = true) Page<User> findByLastname(String lastname, Pageable pageable);}
这是stackoverflow上的一段代码,使用于mysql。
值得一提的是,这个 ORDER BY ?#{#pageable} 非常关键,没有的话会报错,而且不同的数据库,这个地方的表达语法还不太一样,一定要引起重视。
还因为是nativeQuery,所以这里的表名,字段名需要和数据库里的一致,不像平常是和javabean保持一致。
3.遇到的一个大坑:
java.lang.IllegalArgumentException:Parameter with that position [1] did not exist
这个问题最后我发现是countQuery有问题,我一开始以为是只要把整张表的长度返回回去就好了(就像SELECT count(*) FROM USERS),但肯定不是啊!!
countQuery后面跟的where条件一定要和上面value里面的where条件一致。
阅读全文
0 0
- 自定义@Query 中使用分页
- Java中使用sql标签<sql:query />分页显示
- Solr 使用自定义 Query Parser
- Solr 使用自定义 Query Parser
- yii框架中搜索分页Query写法
- 使用自定义标签分页
- ASP.NET 使用DataTable在Table中实现自定义分页
- ASP.NET 使用DataTable在Table中实现自定义分页
- ecshop中自定义页面的分页实现使用ecs自带分页程序
- java中自定义分页标签
- DataGrid自定义分页的使用
- 使用PagerTemplate自定义分页按钮
- laravel 使用自定义视图分页
- laravel 使用自定义视图分页
- swiper自定义分页器使用
- Query---分页插件
- query查询&分页
- hibernate query分页封装
- sanic下通过信号(blinker)创建cassandra的表索引
- dedecms循环输出时limit用法
- CentOS 7安装python3.5版本
- 图解物联网IoT未来技术
- 图结构及其应用
- 自定义@Query 中使用分页
- 程序异常立刻退出,如何定位关键代码位置
- 【JavaScript】document.write()的用法和清空的原因
- Android Study Material Design 十二 之 FloatingActionButton初识
- 《弃子长安》第十四章 弃子不公
- ViDi 提供首款开箱即用的工业图像分析专用的深度学习型软件
- 团体程序设计天梯赛-练习集 L1-019. 谁先倒
- 客户(用户)管理系统---基于数据库javaweb的增删改查
- vs数据库连接方法