Spring Data JPA 从入门到精通~javax.persistence概况介绍
虽然 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概况介绍相关推荐
- Spring Data JPA 从入门到精通~@Version处理乐观锁的问题
@Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...
- Spring Data JPA 从入门到精通~实际工作的应用场景
在实际工作中,有哪些场景会用到自定义 Repository 呢,这里列出几种实际在工作中的应用案例. 1. 逻辑删除场景 可以用到上面说的两种实现方式,如果有框架级别的全局自定义 Respositor ...
- Spring Data JPA 从入门到精通~EntityManager介绍
EntityManager 介绍 我们前面已经无数次提到了,JPA 的默认 Repository 的实现类是 SimpleJpaRepository,而里面的具体实现就是调用的 EntityManag ...
- spring data jpa从入门到精通_Spring Data JPA的简单入门
前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...
- Spring Data JPA 从入门到精通~Naming命名策略详解及其实践
Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...
- Spring Data JPA 从入门到精通~默认数据源的讲解
默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...
- Spring Data JPA 从入门到精通~Auditing及其事件详解
Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...
- Spring Data JPA 从入门到精通~自定义实现Repository
EntityManager 的获取方式 我们既然要自定义,首先讲一下 EntityManager 的两种获取方式. 1. 通过 @PersistenceContext 注解. 通过将 @Persist ...
- Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例
新建两个实体 @Entity(name = "UserInfoEntity") @Table(name = "user_info", schema = &quo ...
最新文章
- 直播|微软徐一翀:在常识问答中超越人类水平!自注意力与外注意力机制
- 函数调用时栈的相关变化
- java spring cloud版b2b2c社交电商spring cloud分布式微服务:服务注册与发现(Eureka、Consul)...
- 拉屎能赚钱?在马桶上月入过万?原来卫生间里还有这么多隐藏福利,超模君都惊了……
- python开发出来的crm系统_用Python打造一个CRM系统(三)
- Go Concurrency Patterns: Context
- 快速排序思路(挖坑版),代码实现
- 一些避免竞争条件的实例
- 编译WINDOWS版FFmpeg:编译FFmpeg
- Mbs Framework 简介
- APK大小查看、定义、反编译、如何安装解压
- arduino 土壤温湿度传感器_arduino测量土壤湿度自动浇水提醒 - 全文
- python爬取微信公众号的几种方法_一种爬取微信公众号信息的方法与流程
- x86_64-linux-gnu 在线编译,Linux x86 编译 Android 遭遇 gnu/stubs-64.h
- ResourceBundle的基本使用
- ue4当中材质自定义uv和多套uv
- 南阳oj入门题-蛇形填数
- php网页字号颜色,pc端web、移动端web的字体大小、颜色、字体样式使用
- 学会了这个配音方法,我的视频居然成了热门爆款
- 无人值守污水处理控制系统。 西门子200PLC和显控触摸屏编写的智能污水处理控制系统