DoydoQuery v2
首页GitHub
简体中文
简体中文
  • 项目介绍
  • 快速上手
  • 对象概念
    • 查询对象
      • 分页排序
      • 谓词后缀字段
      • 逻辑后缀字段
      • 子查询字段
      • ER关系字段
      • 自定义查询字段
    • 实体对象
      • 枚举字段
      • 分表
    • 视图对象
      • 列映射
    • 聚合查询对象
  • 基础用法
    • 增删查改接口
    • 中间表访问接口
    • 数据库方言
    • 打印SQL日志
  • Web
    • Controller
  • Service
  • 缓存
  • 排序参数
  • 校验
  • 用户注入
  • 相关资源
    • 文章
      • 从ORM到OQM:一种基于对象的SQL语句构造方案
由 GitBook 提供支持
在本页
  • 示例
  • 定义
  • 分页
  • 排序

这有帮助吗?

  1. 对象概念
  2. 查询对象

分页排序

查询对象需要继承PageQuery类以构造分页子句和排序子句。PageQuery类定义了相关字段用于支持对应的功能。其中,pageNumber和pageSize用于构建分页子句,sort 用于构建排序子句。

示例

定义

@Getter
@Setter
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class UserQuery extends PageQuery {
    private Long idGt;
    //...
}

分页

代码调用:

UserQuery userQuery = UserQuery.builder().build();
List<UserEntity> users = userDataAccess.query(userQuery);
//SELECT id, score, memo FROM User

UserQuery userQuery = UserQuery.builder().pageSize(20).build();
List<UserEntity> users = userDataAccess.query(userQuery);
//SELECT id, score, memo FROM User LIMIT 20 OFFSET 0

// When only PageNumber is set, PageSize will be set to 10
UserQuery userQuery = UserQuery.builder().pageNumber(5).build();
List<UserEntity> users = userDataAccess.query(userQuery);
//SELECT id, score, memo FROM User LIMIT 10 OFFSET 40

UserQuery userQuery = UserQuery.builder().pageNumber(3).pageSize(50).build();
List<UserEntity> users = userDataAccess.query(userQuery);
//SELECT id, score, memo FROM User LIMIT 10 OFFSET 100	

Web调用:

http://localhost:8080/user/?pageNumber=2&pageSize=20

排序

代码调用:

UserQuery userQuery = UserQuery.builder().sort("id,desc;score,asc;memo").build();
List<UserEntity> users = userDataAccess.query(userQuery);
//SELECT id, score, memo FROM User ORDER BY id DESC, score ASC, memo

赋值给sort字段的字符串需要符合正则表达式:PageQuery.SORT_PTN。

Web调用:

http://localhost:8080/user/?sort=id,desc
http://localhost:8080/user/?sort=memo,desc;email,desc
上一页查询对象下一页谓词后缀字段

最后更新于4天前

这有帮助吗?