Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询


JPA本身并不是一种框架,是一种规范,其全称是Java Persistence API,是是Sun官方提出的Java持久化规范,而他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,并且其是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。

我们可以通过创建一个接口并继承CrudRepository来替代dao层的增删改查

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第1张图片



我们可以看CrudRepository其实是继承了Repository类

我们可以自己定义接口继承Repository,编写自己的查询语句来实现数据的操作。

有这么几点需要强调下:
1. Repository是一个空接口,即是一个标记接口;
2. 若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个Repository Bean纳入到IOC容器中,进而可以在该接口中定义满足一定规范的方法。
3. 实际上也可以通过@RepositoryDefinition,注解来替代继承Repository接口。
4. 查询方法以find | read | get开头;
5. 涉及查询条件时,条件的属性用条件关键字连接,要注意的是条件属性以首字母大写。
6.使用@Query注解可以自定义JPQL语句实现更灵活的查询。

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第2张图片


当我们需要用到分页查询的时候,我们定义的接口需要继承PagingAndSortingRepository接口来实现分页

该接口提供了分页与排序功能   
 --Iterable findAll(Sort sort); //排序    

--Page findAll(Pageable pageable); //分页查询(含排序功能)

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第3张图片

Service层

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第4张图片

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第5张图片


Controller层


运行结果:

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第6张图片

Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询_第7张图片

你可能感兴趣的:(SpringBoot)