虽然 Spring Data JPA 已经对数据的操作封装的很好了,约定大于配置的思想,帮我们默认了很多东西。JPA(Java 持久性 API)是存储业务实体关联的实体的来源,它显示了如何定义一个面向普通 Java 对象(POJO)作为一个实体,以及如何与管理关系实体,提供了一套标准。因此,javax.persistence 下面的有些注解我们还是必须要去了解的,便于更好的提高工作效率。

(1)javax.persistence 我们打开源码位于 hibernate-jpa-**.jar 包里面。

依赖关系,通过 Intellij Idea 的 Maven 插件直接分析一下其依赖,也可以用$ mvn dependency:tree分析,如下:

[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:5.0.4.RELEASE:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.2.14.Final:compile
[INFO] |  |  +- org.javassist:javassist:jar:3.22.0-GA:compile

(2)我们也通过前面说到的 Intellij Idea 的 Diagram 来看一下此模块的类的关键关系。

(3)下图显示了 JPA 的类的层次结构,它显示核心类和 JPA 接口。

(4)下表描述了每个在上述架构的显示单元。

单元

描述

EntityManagerFactory

这是一个 EntityManager 的工厂类,它创建并管理多个 EntityManager 实例

EntityManager

这是一个接口,它管理的持久化操作的对象,它的工作原理类似工厂的查询实例

Entity

实体是持久性对象,是存储在数据库中的记录

EntityTransaction

它与 EntityManager 是一对一的关系,对于每一个 EntityManager,操作是由 EntityTransaction 类维护

Persistence

这个类包含静态方法来获取 EntityManagerFactory 实例

Query

该接口由每个 JPA 供应商,能够获得符合标准的关系对象

上述的类和接口用于存储实体到数据库的一个记录,帮助程序员通过减少自己编写代码来将数据存储到数据库中,使他们能够专注于更重要的业务活动代码,如数据库表映射的类编写代码。

下面我们主要介绍一下,在 Entity 里面常用的注解有哪些,还有很多没有介绍到的,可以直接到包的源码里面进行查找和分析。

Spring Data JPA 从入门到精通~javax.persistence概况介绍相关推荐

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

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

  2. Spring Data JPA 从入门到精通~实际工作的应用场景

    在实际工作中,有哪些场景会用到自定义 Repository 呢,这里列出几种实际在工作中的应用案例. 1. 逻辑删除场景 可以用到上面说的两种实现方式,如果有框架级别的全局自定义 Respositor ...

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

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

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

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

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

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

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

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

  7. Spring Data JPA 从入门到精通~Auditing及其事件详解

    Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...

  8. Spring Data JPA 从入门到精通~自定义实现Repository

    EntityManager 的获取方式 我们既然要自定义,首先讲一下 EntityManager 的两种获取方式. 1. 通过 @PersistenceContext 注解. 通过将 @Persist ...

  9. Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例

    新建两个实体 @Entity(name = "UserInfoEntity") @Table(name = "user_info", schema = &quo ...

最新文章

  1. 直播|微软徐一翀:在常识问答中超越人类水平!自注意力与外注意力机制
  2. 函数调用时栈的相关变化
  3. java spring cloud版b2b2c社交电商spring cloud分布式微服务:服务注册与发现(Eureka、Consul)...
  4. 拉屎能赚钱?在马桶上月入过万?原来卫生间里还有这么多隐藏福利,超模君都惊了……
  5. python开发出来的crm系统_用Python打造一个CRM系统(三)
  6. Go Concurrency Patterns: Context
  7. 快速排序思路(挖坑版),代码实现
  8. 一些避免竞争条件的实例
  9. 编译WINDOWS版FFmpeg:编译FFmpeg
  10. Mbs Framework 简介
  11. APK大小查看、定义、反编译、如何安装解压
  12. arduino 土壤温湿度传感器_arduino测量土壤湿度自动浇水提醒 - 全文
  13. python爬取微信公众号的几种方法_一种爬取微信公众号信息的方法与流程
  14. x86_64-linux-gnu 在线编译,Linux x86 编译 Android 遭遇 gnu/stubs-64.h
  15. ResourceBundle的基本使用
  16. ue4当中材质自定义uv和多套uv
  17. 南阳oj入门题-蛇形填数
  18. php网页字号颜色,pc端web、移动端web的字体大小、颜色、字体样式使用
  19. 学会了这个配音方法,我的视频居然成了热门爆款
  20. 无人值守污水处理控制系统。 西门子200PLC和显控触摸屏编写的智能污水处理控制系统

热门文章

  1. 论文浅尝 | 多标签分类中的元学习
  2. Vision Transformer 论文解读
  3. 基于 CNN 的中文对话情感分析
  4. freewheel现场宣讲笔试回忆篇
  5. 前端开发者的福音!通过拖拽就可生成Vue代码的平台来了!
  6. 【实体对齐·综述】An Experimental Study of State-of-the-Art Entity Alignment Approaches
  7. 消息中间件那些事--RabbitMQ
  8. 《程序员修炼之道:从小工到专家》阅读笔记03
  9. ResourceManager里面Trackingui需要手动该ip
  10. git stash简介