Spring Boot -- Spring Data Jpa(5)
来源:互联网 发布:网络群众路线问责 编辑:程序博客网 时间:2024/05/27 10:43
在Spring Data Jpa中使用Criteria查询.
@PersistenceContextEntityManager em;@Overridepublic Employee findOne(Long id) { CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Employee> query = cb.createQuery(Employee.class); Root<Employee> root = query.from(Employee.class); query.where(cb.equal(root.get("id"), id)) .select(root); Employee e = em.createQuery(query).getSingleResult(); return e;}
搜索条件(where)
通过CriteriaQuery.where()添加搜索条件.
CriteriaQuery CriteriaQuery.where(Predicate...predicate)
CriteriaBuilder中有各种产生Predicate对象的方法.
- and()
- or()
- not()
- isTrue()
- isFalse()
- isNull()
- isNotNull()
- equal()
- notEqual()
- greaterThan()
- greaterThanOrEqualTo()
- lessThan()
- lessThanOrEqualTo()
- between()
- gt()
- ge()
- lt()
- le()
- isEmpty()
- isNotEmpty()
- isMember()
- isNotMember()
- like()
- notLike()
多个搜索条件
Example01:
Predicate[] p = { cb.isTrue(root.get("sex")), cb.ge(root.get("age"), 15)};query.where(p);
或
Example02:
Predicate p = cb.and( cb.isTrue(root.get("sex")), cb.ge(root.get("age"), 15));query.where(p);
Example03:
query.where( cb.isTrue(root.get("sex")), cb.ge(root.get("age"), 15));
动态条件
List<Predicate> pList = new ArrayList<>();if(sex != null){ pList.add(cb.equal(root.get("sex"), sex));}if(age != null){ pList.add(cb.ge(root.get("age"), age));}Predicate[] p = pList.toArray(new Predicate[pList.size()]);query.where(p);
排序(orderby)
通过CriteriaQuery.orderby()添加排序规则
CriteriaQuery CriteriaQuery.orderBy(Order... o)CriteriaQuery CriteriaQuery.orderBy(List<Order> o)Order CriteriaBuilder.asc()Order CriteriaBuilder.desc()
Example:
query.orderBy(cb.asc(root.get("id")));
查询字段(select)
CriteriaQuery.select()或CriteriaQuery.multiselect()
分组(groupby)
CriteriaQuery.groupBy()
筛选(having)
CriteriaQuery.having()
Result
Employee employee = em.createQuery(query.select(root)).getSingleResult();List<Employee> list = em.createQuery(query.select(root)).getResultList();
分页
List<Employee> list = em.createQuery(query.select(root)) .setFirstResult(0) .setMaxResults(10) .getResultList();
阅读全文
0 0
- spring-boot-data-jpa
- Spring Boot -- Spring Data Jpa(5)
- Spring Boot+Spring Data JPA+Spring Cache
- spring boot集成data-jpa
- (5)spring boot下 spring Data JPA的使用
- Spring Boot中使用Spring-data-jpa
- spring boot 使用spring data jpa
- spring boot 使用 spring data jpa
- Spring Boot中使用Spring-data-jpa
- spring boot and spring data jpa
- 《spring-boot学习》-07-spring data jpa
- spring boot中使用spring-data-jpa
- Spring Boot中使用Spring-data-jpa
- 初识spring boot和spring data jpa
- Spring Boot [组件学习-Spring Data JPA]
- Spring Boot集成Spring Data Jpa
- Spring Boot+Spring Data Jpa+DBCP2数据源
- spring boot之Spring-data-jpa
- 购物中心、商超、运营商厅三箭齐发!乐语在下一盘什么棋?
- Activity的生命周期
- Java优先队列初识
- Android中webview:软键盘弹出引起的各种不适
- 图形数据库总结之NoSQL
- Spring Boot -- Spring Data Jpa(5)
- input_radio_自定义样式
- Linux+Anaconda+ tensorflow + keras 安装+换源
- 一篇关于了解generatorConfig自动生成model,dao包的心路历程
- Vue-Router(三) 编程式导航
- eclipse中添加额外的jar包
- Lua table源码分析
- Python爬虫入门-利用scrapy爬取淘女郎照片
- 构建乘积数组