JPA多条件查询+分页

这么久啦,今天突然醒悟xaingqi第一次写博客

接触JPA后自我的一个总结,只是会讲究用,至于原理还是很多都不知道 ,有什么不对的地方,欢迎大家指出修改

废话不多说 直接上...


 要想实现分页+多条件查询  首先dao层得继承 JpaRepository<T, Serializable>

控制层:

如上图所示 我们要通过new  得到一个pageable   正是通过pageable     来完成  分页的实现,可以看到又截个参数   根据自身需要  传入参数

接下来  我们就要进行多条件的查询的操作...

实现层:

Specification<Merchant> specification = new Specification<Merchant>() {
@Override
public Predicate toPredicate(Root<Merchant> root,CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<Predicate>();
if(merchant.getAccount()!=null){
//对字段的查询
list.add(cb.equal(root.get("display").as(Integer.class), merchant.getDisplay()));
list.add(cb.like(root.get("account").as(String.class), "%" + merchant.getAccount() + "%"));
Predicate[] predicates = new Predicate[list.size()];  
               predicates = list.toArray(predicates);  
               return cb.and(predicates);
}
}
};
return merchantRepository.findAll(specification,pageable);

如上代码所示:

我们要通过CriteriaBuilder cb  来进行一系列的操作  like   equal  等等   没做深入研究

最后由继承JpaRepository<T, Serializable> 的merchantRepository  调用方法findAll(specification,pageable),

第一个参数多条件查询参数    第二个就是分页参数


多的我也整不来啦,就只有这点货,

每天坚持一丢丢,进步一丢丢...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值