介绍Spring Data Common里面的公用基本方法

(1)Spring Data Common的Repository

  Repository位于Spring Data Common的lib里面,是Spring Data里面做数据库操作的最底层的抽象接口、最顶级的父类,源码里面其实什么方法都没有,仅仅起到一个标识作用。管理域类以及域类的id类型作为类型参数,此接口主要作为标记接口捕获要使用的类型,并帮助你发现扩展此接口的接口。Spring底层做动态代理的时候发现只要是它的子类或者实现类,都代表储存库操作

  Repository的源码如下

Spring Data Jpa (二)JPA基础查询

  有了这个类,我们就能顺藤摸瓜,找到好多Spring Data JPA提供的基本接口和操作类,及其实现方法。这个接口定义了所有Repostory操作的实体和ID两个泛型参数。我们不需要继承任何接口,只要继承这个接口,就可以使用Spring JPA里面提供的很多约定的方法查询和注解查询。

 

 

(2)CrudRepository方法详解  

  通过类关系图可以看到CrudRepository提供了公共的通用的CRUD方法。

  CrudRepository interface内容

Spring Data Jpa (二)JPA基础查询

(1)保存实体方法。我们通过刚才的类关系查看其他实现类。SimpleJpaRepository里面的实现方法

  Spring Data Jpa (二)JPA基础查询

    我们发现它是先检查传进去的实体是不是存在,然后判断是新增还是更新;是不是存在两种根据机制,一种是根据主键来判断,另一种是根据Version来判断(后面讲解Version的时候详解)。如果我们去看JPA控制台打印出来的SQL,最少会有两条,一条是查询,一条是insert或者update。

(2)批量保存。原理和步骤(1)相同。实现方法就是for循环调用上面的save方法。

(3)根据主键查询实体。
(4)根据主键判断实体是否存在。
(5)查询实体的所有列表。
(6)根据主键列表查询实体列表。
(7)查询总数。
(8)根据主键删除。我们通过刚才的类关系查看其他实现类。SimpleJpaRepository里面的实现方法:

Spring Data Jpa (二)JPA基础查询

 

    我们看到JPA会先去查询一下,再做保存,不存在抛出异常。这里特别强调一下delete和save方法,因为在实际工作中有的人会画蛇添足,自己先去查询再做判断处理,其实Spring JPA底层都已经考虑到了。

 

(3)PagingAndSortingRepository方法详解

  果进行限制的基本的、常用的、通用的一些分页方法。

  内容

Spring Data Jpa (二)JPA基础查询

    (1)根据排序取所有对象的集合。

对象包含分页和Sort对象。

里面。

 

(4)JpaRepository方法详解

  JpaRepository继承和拥有了QueryByExampleExecutor的相关方法。

  现的查询结果变成了List。

 

(5)Repository的实现类SimpleJpaRepository

  SimpleJpaRepository是JPA整个关联数据库的所有Repository的包括我们后面讲的Query Method。

 

相关文章:

  • 2022-03-04
  • 2021-05-19
  • 2021-10-06
  • 2021-06-16
猜你喜欢
  • 2022-01-21
  • 2021-05-10
  • 2021-08-17
  • 2021-07-15
  • 2022-12-23
  • 2021-09-23
  • 2022-01-16
相关资源
相似解决方案