Springboot + jpa实现分页条件查询

springboot +jpa的技术框架,可以实现基于面向对象的orm,即不写sql语句即完成查询。

springboot框架的搭建这里不再赘述。

直接看代码:(通过jpa的Example实现条件分页查询)

 @Autowired
    private ItemDao itemDao;


    public Page<Item> getItemListByPage(Integer pageNum, Integer pageSize, String itemId) {

        Item item = new Item();
        item.setItemId(itemId);
        ExampleMatcher matcher = ExampleMatcher.matching()
                .withMatcher("itemId", ExampleMatcher.GenericPropertyMatchers.exact());

        Example<Item> example = Example.of(item, matcher);
        PageRequest pageRequest = PageRequest.of(pageNum-1, pageSize);
        Page<Item> page = null;
        if (StringUtils.isEmpty(itemId)) {
            page = itemDao.findAll(pageRequest);
        }else {
            page = itemDao.findAll(example, pageRequest);
        }
        return page;
    }

如上:

如果想要分页信息,需要实例化一个Pageable对象,传入需要分页的信息,类似于pageHelper.

需要条件查询的时候,就需要创建ExampleMatcher对象去进行匹配对象,因为在jpa框架中,数据库表中的一行数据就对象这一个对象。ExampleMatcher.GenericPropertyMatchers 可以进行包含匹配,和精确匹配。

实例化以上连个对象,再将该对象传入到JpaRepository接口中的findAll方法 中,即可完成对后台数据的条件分页查询,如果需要过滤多个参数,只需要将Example中的对象添加过滤字段以及ExampleMatcher书写对应的过滤规则即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值