从 JpaRepository 开始的子类,都是 Spring Data 项目对 JPA 实现的封装与扩展。JpaRepository 本身继承 PagingAndSortingRepository 接口,是针对 JPA 技术的接口,提供 flush()、saveAndFlush()、deleteInBatch()、deleteAllInBatch() 等方法。我们来看一下 UML 来对 JpaRespository 有个整体的认识。

  • 从图中其实可以发现,JPA 的实现类最关键是:SimpleJpaRepository,我们多次提到,还有一个最关键的实现类是 QuerydslJpaRepository,会在后面继续介绍。
  • 从图中还可以看出来,最关键的几个接口 QueryByExampleExecutor、JpaSpecificationExecutor。
  • 从图中还可以好好体会一些接口的用意(暴露那些该暴露的操作方法,而不是一股脑的把所有的方法都暴露给使用的人,因为不是每个场景下面都会用到所有方法。作者感悟:在实际工作中,当我们去设计公共方法或者架构的时候,要充分考虑清楚抽象类和接口的区别及其应用场景。)

Spring Data JPA 从入门到精通~JpaRepository介绍相关推荐

  1. Spring Data JPA 从入门到精通~EntityManager介绍

    EntityManager 介绍 我们前面已经无数次提到了,JPA 的默认 Repository 的实现类是 SimpleJpaRepository,而里面的具体实现就是调用的 EntityManag ...

  2. Spring Data JPA 从入门到精通~@Version处理乐观锁的问题

    @Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...

  3. spring data jpa从入门到精通_Spring Data JPA的简单入门

    前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...

  4. Spring Data JPA 从入门到精通~默认数据源的讲解

    默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...

  5. Spring Data JPA 从入门到精通~QueryByExampleExecutor的使用

    QueryByExampleExecutor 的使用 按示例查询(QBE)是一种用户友好的查询技术,具有简单的接口,它允许动态查询创建,并且不需要编写包含字段名称的查询.从 UML 图中,可以看出继承 ...

  6. Spring Data JPA 从入门到精通~SpEL表达式的支持

    在 Spring Data JPA 1.4 以后,支持在 @Query 中使用 SpEL 表达式(简介)来接收变量. SpEL 支持的变量 变量名 使用方式 描述 entityName select ...

  7. Spring Data JPA 从入门到精通~@Param用法

    默认情况下,参数是通过顺序绑定在查询语句上的,这使得查询方法对参数位置的重构容易出错.为了解决这个问题,可以使用 @ Param 注解指定方法参数的具体名称,通过绑定的参数名字做查询条件,这样不需要关 ...

  8. Spring Data JPA 从入门到精通~查询结果的处理

    参数选择(Sort/Pageable)分页和排序 特定类型的参数,Pageable 并动态 Sort 地将分页和排序应用于查询 案例:在查询方法中使用 Pageable.Slice 和 Sort. P ...

  9. Spring Data JPA 从入门到精通~Naming命名策略详解及其实践

    Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...

最新文章

  1. IOS 从系统图库中获取 图片 并设置为头像
  2. 基于Proxy的小程序状态管理
  3. matlab fill 渐变,Matlab的渐变色填充(一)
  4. 虚拟机Virtualbox中的Ubuntu系统,安装增强功能时报错:未能加载虚拟光驱VBoxsGuestAdditions.iso到虚拟电脑
  5. Oracle MySQL社区版与Oracle MySQL企业版特征对比
  6. 思维方式是看待事物的角度、方式和方法,它对人的言行起到决定性作用
  7. 达梦数据库查看某个表的字段类型、常用数据库驱动类名以及URL
  8. java 验证服务器宕机_java服务宕机原因查询
  9. (ZT)关于IAP防止破解的几点
  10. 完全卸载惠普打印机驱动程序方法搜集(未验证)
  11. Python 爬虫之代理服务器
  12. 通达OA2019版本全功能
  13. 课后作业三:软件分析与用户体验分析
  14. Tensorflow实现网络---Resnet
  15. 【ICPC】2019徐州 H Yuuki and a problem | 树套树、思维
  16. SVN mac 破解版
  17. SpringBoot基础学习之SpringBoot配置(上篇)
  18. 关于systeminfo的使用
  19. ubuntu只读文件系统
  20. 爱他美英国和德国价格查询_德国,以色列和英国转向开源,新的无人驾驶汽车技术以及更多新闻...

热门文章

  1. 技术实践 | 用 NetworkX + Gephi + Nebula Graph 分析权力的游戏人物关系(上篇)
  2. Linux服务器安装cuda,cudnn,显卡驱动和pytorch超详细流程
  3. Webpack构建性能优化指南
  4. 推荐系统经典论文学习
  5. 如何判断两个IP地址是不是处于同一网段?
  6. 8万行的insert数据,Ctrl+c、Ctrl+v后心态崩了(如何在Linux下对MySQL数据库执行sql文件)...
  7. SQL Server创建Job, 实现执行相同脚本而产生不同作业计划的探究
  8. 知道一个数组某个index对应的值 不知道下标的情况下删除该值
  9. StringBuilder String string.Concat 字符串拼接速度再议
  10. 点击按钮,缩放图片(img.width、img.style.width、img.offsetWidth)