spring data 接口之 JpaRepository,JpaSpecificationExecutor
2018-04-04 00:00
736 查看
package org.zgf.spring.data.dao; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.zgf.spring.data.entity.StudentPO; /** * JpaRepository 继承于 PagingAndSortingRepository 接口, * 由于JpaSpecificationExecutor 并不继承repository 接口,所以它不能单独使用,只能和jpa Repository 一起用 */ public interface IStudentJpaRepository extends JpaRepository<StudentPO, Integer>, JpaSpecificationExecutor<StudentPO> { /** JpaRepository 主要特点,将返回类型 Iterable 转换成了List, 并新增了写方法 * List<T> findAll(); * List<T> findAll(Sort sort); * List<T> findAll(Iterable<ID> ids); * <S extends T> List<S> save(Iterable<S> entities); * void flush(); * <S extends T> S saveAndFlush(S entity); * void deleteInBatch(Iterable<T> entities); * void deleteAllInBatch(); * T getOne(ID id); */ /** JpaSpecificationExecutor 实现了带条件的查询 * T findOne(Specification<T>); * List<T> findAll(Specification<T>); * List<T> findAll(Specification<T>, Sort); * List<T> findAll(Specification<T>, Pageable); * long count(Specification<T>); */ }
测试类
package org.zgf.spring.data.dao; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; import org.zgf.spring.data.base.BaseTest; import org.zgf.spring.data.dao.IStudentJpaRepository; import org.zgf.spring.data.entity.StudentPO; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Path; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import java.util.List; public class Test_IStudentJpaRepository extends BaseTest { @Autowired private IStudentJpaRepository studentJpaSpecification; @Test public void test_findAll() { Specification<StudentPO> specification = new Specification<StudentPO>() { @Override public Predicate toPredicate(Root<StudentPO> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Path path = root.get("id"); Predicate predicate = cb.lt(path, 5); return predicate; } }; List<StudentPO> studentList = this.studentJpaSpecification.findAll(specification); for (StudentPO studentPO : studentList) { System.out.println(studentPO); } } }
相关文章推荐
- spring data 接口之 JpaRepository,JpaSpecificationExecutor
- spring data 接口之 JpaRepository,JpaSpecificationExecutor
- spring data 接口之 JpaRepository,JpaSpecificationExecutor
- 结合SpringDataJPA中的PagingAndSortingRepository和 JpaSpecificationExecutor接口实现大数据量的数据分页查询
- spring data jpa中继承JpaSpecificationExecutor接口的接口不会被IOC容器所管理
- SpringBoot第二讲利用Spring Data JPA实现数据库的访问(二)_分页和JpaSpecificationExecutor接口介绍
- 【SpringData】轻松愉快之玩转SpringData( 第5章 JpaSpecificationExecutor接口 第6章 课程总结 )
- spring data 之JpaRepository,JpaSpecificationExecutor
- Spring Data JPA(3)--JpaRepository和JpaSpecificationExecutor的结合使用
- SpringBoot第二讲 利用Spring Data JPA实现数据库的访问(二)_分页和JpaSpecificationExecutor接口介绍
- jpa学习5--spring data jpa 中的JpaSpecificationExecutor和PagingAndSortingRepository分页
- spring data jpa 利用JpaSpecificationExecutor做复杂查询
- 第七章Spring-data-jpa扩展之JpaSpecificationExecutor
- Spring Data JpaSpecificationExecutor 做复杂查询
- Spring Boot Data JPA JpaSpecificationExecutor
- 一步一步学SpringDataJpa——JpaRepository查询功能
- SpringDataJpa的Specification查询
- Spring data jpa Specification查询关于日期的范围搜索
- spring jpa 扩展 JpaSpecificationExecutor
- SpringDataJpa——JpaRepository查询功能