JPA Predicate复杂查询排序
2017-11-08 09:21
633 查看
使用Predicate查询时,如果不分页,但是要排序,此时pageable无法使用。可以使用如下方法:
Specification<UserModel> spec = new Specification<UserModel>() {
public Predicate toPredicate(Root<UserModel> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
Predicate p1 = cb.like(root.get("name").as(String.class), "%"+um.getName()+"%");
Predicate p2 = cb.equal(root.get("uuid").as(Integer.class), um.getUuid());
Predicate p3 = cb.gt(root.get("age").as(Integer.class), um.getAge());
//把Predicate应用到CriteriaQuery中去,因为还可以给CriteriaQuery添加其他的功能,比如排序、分组啥的
query.where(cb.and(p3,cb.or(p1,p2)));
//添加排序的功能
query.orderBy(cb.desc(root.get("uuid").as(Integer.class)));
return query.getRestriction();
}
};
引用地址:http://blog.csdn.net/tfy1332/article/details/51245470
Specification<UserModel> spec = new Specification<UserModel>() {
public Predicate toPredicate(Root<UserModel> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
Predicate p1 = cb.like(root.get("name").as(String.class), "%"+um.getName()+"%");
Predicate p2 = cb.equal(root.get("uuid").as(Integer.class), um.getUuid());
Predicate p3 = cb.gt(root.get("age").as(Integer.class), um.getAge());
//把Predicate应用到CriteriaQuery中去,因为还可以给CriteriaQuery添加其他的功能,比如排序、分组啥的
query.where(cb.and(p3,cb.or(p1,p2)));
//添加排序的功能
query.orderBy(cb.desc(root.get("uuid").as(Integer.class)));
return query.getRestriction();
}
};
引用地址:http://blog.csdn.net/tfy1332/article/details/51245470
相关文章推荐
- 【Mysql之自我练习<三>】select查询复杂排序(注:私用的,为了不遗失)
- 介绍 复杂查询,包括多表关联,分页,排序等
- spring boot 复杂多条件分页排序列表查询
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序
- 单表-------主键、外键、选择操作,like操作符,in 批量查询、排序order by、表的复杂查询---分组函数(max/min/agv/sum/count)、group by、having
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- struts hibernate spring 实现分页、排序、复杂条件查询②
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- Spring MongoTemplate复杂查询分页排序
- solr复杂查询;及代码示例;包括查询、过滤、分页、排序、高亮显示等处理 的代码示例;
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- 用视图+存储过程解决复杂查询的排序分页问题
- 转载 spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- 用视图+存储过程解决复杂查询的排序分页问题
- Angularjs添加排序查询功能的实例代码
- select语句(2)--排序和限制查询
- 复杂排序
- 15.5数据库(5):SQL语句进阶1:单表内复杂查询
- 外理多值查询,同时相关业务的复杂处理
- 全文检索Lucene(三)----查询,分词器,排序,过滤,高亮