分页排序
查询对象需要继承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
最后更新于
这有帮助吗?