Spring Data JPA 提供的各种Repository接口作用

各种Repository接口继承关系:

Repository :

public interface UserRepository  extends Repository<User, Integer> {
}
  • 方法命名规则查询方式:
findByNameLike(String name)
findByName(String name)
findByNameAndAge(String name, Integer age)
findByNameOrAddress(String name)
...

参考:

https://www.jianshu.com/p/1d6f27f675bb
https://www.jianshu.com/p/1d6f27f675bb
  • 基于@Query注解的查询和更新

    1. 基于@Query注解的查询

      • JPQL 方式

        @Query("form User WHERE name = ?1")
        List<User> findByName(String name);

        ps: JPQL 占位符索引是从1开始的。

      • SQL 方式
        @Query("select * from User WHERE name = ?1")
        List<User> findByName(String name);
    2. 基于@Query注解的更新

      基于@Query注解的更新需要增加@Modifying

      • JPQL 方式

        @Query("Update User set name = ?1 WHERE id = ?2")
        @Modifying
        int updateNameAndId(String name, Integer id);
      • SQL 方式
        @Query("update user set name = ?1 WHERE id = ?2")
        @Modifying
        int updateNameAndId(String name, Integer id);

CrudReposiroty :

CrudRepository: 主要是进行增删改查的方法 

PagingAndSortingRepository :

PagingAndSortingRepository: 主要是进行排序或者分页

JPARepository

JPARepository: 主要对继承父接口中方法的返回值进行了适配,因为在父类接口中通常都返回迭代器,需要我们自己进行强制类型转化。而在JpaRepository中,直接返回了List

JpaSpecificationExecutor

JpaSpecificationExecutor: 主要提供了多条件查询的支持,并且可以在查询中添加分页和排序。 

总结 :

Spring Data Jpa中一共提供了

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

    ? HQL: nativeQuery 默认false

      SQL: nativeQuery 默认true

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

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

PagingAndSortRepository:

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

JpaRepository:

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

JpaSpecificationExecutor

提供多条件查询

原文地址:https://www.cnblogs.com/linhuaming/p/11823952.html

时间: 2024-11-03 22:09:21

Spring Data JPA 提供的各种Repository接口作用的相关文章

Spring Boot教程35——Spring Data JPA

Hibernate是数据访问解决技术的绝对霸主.JPA是由Hibernate主导的一个基于O/R映射的标准规范.O/R映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无须关注数据库相关的技术. Spring Data JPA介绍 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义一个继承JpaRepository的接口即可: public interface PersonRepository extends Jpa

深入浅出学Spring Data JPA

第一章:Spring Data JPA入门   Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 P

Spring Data JPA

转自: http://www.cnblogs.com/WangJinYang/p/4257383.html Spring 框架对 JPA 的支持 Spring 框架对 JPA 提供的支持主要体现在如下几个方面: 首先,它使得 JPA 配置变得更加灵活.JPA 规范要求,配置文件必须命名为 persistence.xml,并存在于类路径下的 META-INF 目录中.该文件通常包含了初始化 JPA 引擎所需的全部信息.Spring 提供的 LocalContainerEntityManagerFa

了解 Spring Data JPA

前言 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择.它一改之前 EJB 2.x 中实体 Bean 笨重且难以使用的形象,充分吸收了在开源社区已经相对成熟的 ORM 思想.另外,它并不依赖于 EJB 容器,可以作为一个独立的持久层技术而存在.目前比较成熟的 JPA 框架主要包括 Jboss 的 Hibernate EntityManager.Oracle 捐献给 Eclipse 社区的 E

使用 Spring Data JPA 简化 JPA 开发

从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供的参考资料进一步学习. 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为

JPA &amp;&amp; Spring Data JPA

1.JPA  Java Persistence API,用于对象持久化的一组API,JPA本身是一组规范,让开发者用同一种方式访问不同的ORM框架.其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范.因此各种ORM框架都会提供满足JPA要求的实现.在Spring项目中,ORM框架最常使用的就是Hibernate,Hibernate EntityManager就是JPA的一种provider. 2.Spring Data 尽管我们可以通过JPA规范

Spring Data Jpa配置

Spring Data JPA提供的接口,也是Spring Data JPA的核心概念: 1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别. 2:CrudRepository :是Repository的子接口,提供CRUD的功能 3:PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能 4:JpaRepository:是PagingAndSortingR

Spring Data JPA学习笔记

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,其主要目标是使得对数据的访问变得方便快捷.可以在几乎不用写实现的情况下,实现对数据的访问和操作.除了CRUD外,还包括如分页.排序等一些常用的功能. Spring Data JPA提供的接口:1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别.2:CrudRepository :是Repository的子接口,提供CRUD的功能.3:Paging

初入spring boot(五 )Spring Data JPA

Spring Data JPA通过提供基于JPA的Repository极大地减少JPA作为数据访问方案的代码量. 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义一个继承JpaRepository的接口即可,接口如下: 1 @RepositoryRestResource(path = "people") 2 public interface PersonRepository extends JpaRepository<Person, Long