JPARepository

JpaSpecificationExecutor

  • 通过查询条件查询

  • 方法

    1. Optional<T> findOne(@Nullable Specification<T> spec):根据条件查询

    2. findAll:查询所有

      • List<T> findAll(@Nullable Specification<T> spec):根据条件查询所有

      • Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable):根据条件分页[排序]

      • List<T> findAll(@Nullable Specification<T> spec, Sort sort):根据条件排序

    3. long count(@Nullable Specification<T> spec):查询数量

  • Specification接口:

    Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder);
    1. 该接口通常使用匿名内部类
    2. Predicate 代表查询条件
    3. Root 代表查询的实体类对象
    4. CriteriaQuery 可以从中查询到 root 对象,还可以用来添加查询条件,还可以结合EntityManager获取最终查询的TypeQuery对象
    5. CriteriaBuilder 用于创建Criteria相关对象的工厂,当然可以从中获取到 Predicate 对象

Spring Data Jpa中一共提供了

Repository:
  • 支持方法命名查询 (提供了findBy + 属性方法 )

  • @Query

    ​ HQL: nativeQuery 默认false

      SQL: nativeQuery 默认true

          更新的时候,需要配合@Modifying使用
CurdRepository:

继承了Repository 主要提供了对数据的增删改查

PagingAndSortRepository:

继承了CrudRepository 提供了对数据的分页和排序,缺点是只能对所有的数据进行分页或者排序,不能做条件判断

JpaRepository:

继承了PagingAndSortRepository,开发中经常使用的接口,主要继承了PagingAndSortRepository,对返回值类型做了适配

JpaSpecificationExecutor

提供多条件查询

猜你喜欢

转载自www.cnblogs.com/agnesFlower/p/12461939.html
今日推荐