Spring data Jpa 分页从1开始,查询方法兼容 Mybatis,分页参数兼容Jqgrid
废话少说
有参数可以设置
在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));
}
传入参数

结果

Spring data Jpa 分页从1开始,查询方法兼容 Mybatis,分页参数兼容Jqgrid的更多相关文章
- Spring Data JPA的Respository接口中查询方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
软件152 尹以操 首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml ...
- 【hql】spring data jpa中 @Query使用hql查询 问题
spring data jpa中 @Query使用hql查询 问题 使用hql查询, 1.from后面跟的是实体类 不是数据表名 2.字段应该用实体类中的字段 而不是数据表中的属性 实体如下 hql使 ...
- Spring Data JPA 复杂/多条件组合查询
1: 编写DAO类或接口 dao类/接口 需继承 public interface JpaSpecificationExecutor<T> 接口: 如果需要分页,还可继承 public ...
- Spring Data JPA 实现多表关联查询
本文地址:https://liuyanzhao.com/6978.html 最近抽出时间来做博客,数据库操作使用的是 JPA,相对比 Mybatis 而言,JPA 单表操作非常方便,增删改查都已经写好 ...
- spring data jpa 使用JPQL的方式查询
用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用@Query注解,结合JPQL的语句方式完成查询 @Que ...
- 使用Spring Data JPA的Specification构建数据库查询
Spring Data JPA最为优秀的特性就是可以通过自定义方法名称生成查询来轻松创建查询SQL.Spring Data JPA提供了一个Repository编程模型,最简单的方式就是通过扩展Jpa ...
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...
- Spring Data JPA + layui的前台分页插件layPage实现页面的分页
一.后台代码: 1.1 controller层代码 @RequestMapping("/xxxxxx") public String showInformationCode(Str ...
- 【spring data jpa】使用repository进行查询,使用userRepository.getOne(id)和userRepository.findById(id)无法从数据库查询到数据
如题: 使用repository进行查询,使用CrudRepository自带的getOne()方法和findById()方法查询,数据库中有这条数据,但是并不能查到. userRepository. ...
随机推荐
- Linux命令之tar篇
作业一: 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) [root@localhost ~]# cat /etc/passwd /etc/group > ...
- Disruptor 详解
想了解一个项目,最好的办法就是,把它的源码搞到本地自己捣鼓. 在网上看了 N 多人对 Disruptor 速度的吹捧,M 多人对它的机制分析,就连 Disruptor 官方文档中,也 NB 哄哄自诩: ...
- JS_高程3.基本概念(3)
1.ECMAScript数值的范围 由于内存的限制,在大多数浏览器中,ECMAScript能够拿保存的数据的范围是 5e-324 ~ 1.7976931348623157e+308,其中最小的数值保存 ...
- GMA Round 1 简单的线性规划
传送门 简单的线性规划 已知D(x,y)满足$\left\{\begin{matrix}x>-3\\ y>1\\ x+y<12\end{matrix}\right.$ 求$\frac ...
- H5C303
H5C303 1.CSS3 一些js功能可以通过css3实现. 坚持渐进增强原则. 另一侧:优雅降级hack 3.选择器 1)属性选择器:根据指定名称的属性来查找元素 E是元素 li[style]{ ...
- 为Ubuntu新创建用户创建默认.bashrc并自动加载
首先,su – 到新创建的用户 拷贝默认的.bashrc过来 1 cp /etc/skel/.bashrc ~/ 然后创建.profile文件 1 vi ~/.profile 粘贴下面的内容 ...
- 发送HTTPS请求
package com.suning.epp.trt.util.r32epp; import java.io.BufferedInputStream; import java.io.IOExcepti ...
- Git - 生成ssh key步骤以及如何clone所有的远程分支
https://www.cnblogs.com/gongyuhonglou/p/6922721.html 2. 生成ssh key $ ssh-keygen -t rsa -C “邮箱”按3个回车,密 ...
- TensorFlow实战Google深度学习框架10-12章学习笔记
目录 第10章 TensorFlow高层封装 第11章 TensorBoard可视化 第12章 TensorFlow计算加速 第10章 TensorFlow高层封装 目前比较流行的TensorFlow ...
- 【一步步学OpenGL 20】 -《点光源》
教程 20 点光源 原文: http://ogldev.atspace.co.uk/www/tutorial20/tutorial20.html CSDN完整版专栏: http://blog.csdn ...