spring data 复杂条件查询, in 语句查询

1、CriteriaQuery 安全查询主语句

2、Root 定义查询的From子句中能出现的类型、

3、Predicate 过滤条件

4、Predicate[] 多个过滤条件

代码

                                List<Predicate> predicatesList = new ArrayList<Predicate>();
				
				if( bhjlquery != null && bhjlquery.getWxzt() != null ) {
					predicatesList.add(criteriaBuilder.equal(_bhwxzt, bhjlquery.getWxzt()));
				}
				
				if( bhjlquery != null && bhjlquery.getPgzt() != null ) {
					predicatesList.add(criteriaBuilder.equal(_pgzt, bhjlquery.getPgzt()));
				}
				// 数据权限 通过管养路段去实现
				Expression<String> exp = root.<String>get("ldcode"); 
				List<String> lds = getBmLdService.getLds();
				if( lds == null || lds.size() == 0 ) return null;
				predicatesList.add(exp.in(lds));
				if( predicatesList.size() > 0 ) {
					Predicate[] p = new Predicate[predicatesList.size()];
					return criteriaBuilder.and(predicatesList.toArray(p));
				} else {
					return null;
				}

in 语句查询

Expression<String> exp = root.<String>get("ldcode"); 
				List<String> lds = getBmLdService.getLds();
				if( lds == null || lds.size() == 0 ) return null;
				predicatesList.add(exp.in(lds));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值