码迷,mamicode.com
首页 > 编程语言 > 详细

spring JPA 动态查询

时间:2016-11-05 02:09:40      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:ace   exec   nbsp   epo   dao   uil   err   ring   over   

 

没什么好说的,记住就行。

下面是在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 动态查询

标签:ace   exec   nbsp   epo   dao   uil   err   ring   over   

原文地址:http://www.cnblogs.com/amushen/p/6032008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!