Spring data Jpa 分页从1开始,查询方法兼容 Mybatis,分页参数兼容Jqgrid
2024-08-25 05:07:34
废话少说
有参数可以设置
在org.springframework.boot.autoconfigure.data.web.SpringDataWebProperties 中
/**
* Whether to expose and assume 1-based page number indexes. Defaults to "false",
* meaning a page number of 0 in the request equals the first page.
*/
private boolean oneIndexedParameters = false;
所以在application.yml中
spring:
data:
web:
pageable:
default-page-size: 20
size-parameter: rows
one-indexed-parameters: true
兼容Mybatis 分页查询
/**
* laizhenwei
* @param OrderPage
* @return org.springframework.data.domain.Page<Order>
*/
@Override
public Page<Order> page(OrderPage OrderPage){
return this.readPage( OrderPage.getPageable(), OrderPage);
} /**
* laizhenwei
* @param pageable
* @param OrderPage
* @return org.springframework.data.domain.Page<Order>
*/
@Override
public Page<Order> readPage(Pageable pageable, @Nullable OrderPage OrderPage) {
return PageableExecutionUtils.getPage(getMapper().page(OrderPage), pageable, () -> getMapper().pageCount(OrderPage));
}
mybatis pageCount方法
<!-- 条件分页查询,数据 -->
<select id="pageCount" resultType="long" parameterType="OrderPage">
SELECT COUNT(o.id) FROM `order` o LEFT JOIN `user` u ON o.`user_id` = u.`id`
<trim prefix="where" prefixOverrides="and|or">
<if test="status!=null">
AND o.status = #{status}
</if>
<if test="billStatus!=null">
AND o.bill_status=#{billStatus}
</if>
<if test="type!=null">
AND o.type =#{OrderPage.type}
</if> <if test="realName!=null">
AND u.real_name LIKE CONCAT('%',#{realName},'%')
</if>
<if test="origin!=null and origin!=''">
AND o.origin LIKE CONCAT('%',#{origin},'%')
</if>
<if test="destination!=null and destination!=''">
AND o.destination LIKE CONCAT('%',#{destination},'%')
</if>
</trim>
</select>
controller
@RequestMapping(path = "/page",method = RequestMethod.POST,consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseVo<Page<Order>> page(@PageableDefault Pageable pageable, @ModelAttribute OrderPage orderPage){
ResponseVo<Page<Order>> responseVo = ResponseVo.success();
orderPage.setPageable(pageable);
return responseVo.setData(orderService.page(orderPage));
}
传入参数
结果
最新文章
- DVDstore 数据库基准测试
- Tarjan算法---强联通分量
- A.Kaw矩阵代数初步学习笔记 6. Gaussian Elimination
- [转]Hive/Beeline 使用笔记
- CXF(2.7.10) - RESTful Services
- FZU1608(线段树)
- URAL1113(数学)
- 如何用unity3d实现发送带附件的邮件
- C语言程序设计课程设计自查表格
- 【IOS 开发】Object-C 入门 Xcode 环境详解
- Data_r_and_w(csv,json,xlsx)
- idea使用错误及技巧总结合集(一)
- JAVAEE 第八周
- D - Brave Game
- webview中事件的用法
- 20170501xlVBA销售订单整理一行转多行
- vim实践学习
- network出错
- ZetCode PyQt4 tutorial widgets I
- 类的初始化__init__使用