spring JPA 动态查询
Posted 阿木申 申楠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring JPA 动态查询相关的知识,希望对你有一定的参考价值。
没什么好说的,记住就行。
下面是在Service中的方法
Page<TStaff> staffs=dao.findAll(new Specification<TStaff>() { @Override public Predicate toPredicate(Root<TStaff> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Predicate predicate = cb.conjunction(); List<Expression<Boolean>> expressions = predicate.getExpressions(); if(StringUtils.isNotEmpty(loginName)){ expressions.add(cb.equal(root.<String>get("loginName"), loginName)); } if(StringUtils.isNotEmpty(email)){ expressions.add(cb.equal(root.get("email").as(String.class), email)); } if(StringUtils.isNotEmpty(groupDn)){ expressions.add(cb.like(root.<String>get("groupDn"), "%"+groupDn)); } return predicate; } }, new PageRequest(page.getCurPage(), page.getPageSize()));
dao定义如下:
public interface StaffDao extends Repository<TStaff, String>,JpaSpecificationExecutor<TStaff>
以上是关于spring JPA 动态查询的主要内容,如果未能解决你的问题,请参考以下文章