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 里面常用的注解有哪些,还有很多没有介绍到的,可以直接到包的源码里面进行查找和分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装配置类似mac下的docky

百度经验:ubuntu安装配置类似mac下的docky 亲手打造自己的Linux桌面环境:http://os.51cto.com/art/201510/493896_all.htm Dock是一种图形用户界面元素,允许用户一键访问常用的应用程序,在应用程序之间快速切换,以及…

埃森哲:2018年科技愿景

来源:199IT互联网数据中心埃森哲近日发布了新报告“2018年科技愿景”,分析了五大技术趋势让企业能够挖掘潜力,创造新的商业机会并帮助改变我们所知道的世界。1公民AI(人工智能)AI随处可见,在整个社会范围内…

java 导出excel教程_Java导出Excel表格

Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到。第一步,创建Excel对象。 HSSFWorkbook workbook new HSSFWorkbook();创建一个工作表。 HSSFSheet sheet workbook.createSheet("日常收入报表");创建合并单元格…

大数据竞赛平台——Kaggle 入门

From:http://blog.csdn.net/u012162613/article/details/41929171 大数据竞赛平台——Kaggle 入门篇 这篇文章适合那些刚接触Kaggle、想尽快熟悉Kaggle并且独立完成一个竞赛项目的网友,对于已经在Kaggle上参赛过的网友来说,大可不必耗费时间…

俄罗斯智库 | 人工智能在军事领域的发展现状及应用前景

本文来自:知远战略与防务研究所原文来自:俄罗斯外交和国防政策委员会网站人工智能在军事领域的发展现状及应用前景本文主要介绍了当今世界及俄罗斯本国人工智能技术发展的现状以及未来该技术在军事领域的应用前景,文章还重点分析了人工智能技…

Internet Explorer 8 使用技巧(3):安全上网

如何上网更安全? 听说过“网络钓鱼”吗?最简单的例子:有不法分子模仿真实的银行网站做了个一模一样的,然后通过邮件或其他方式骗你登录并输入银行账号和密码,结果信息泄露,钱被盗走——这就是最典型的“钓鱼…

java 常量折叠_深入理解Java虚拟机之早期编译器优化

Javac编译器Javac编译器是一个由Java语言编写的程序Javac的源码与调试从Sun Javac的代码来看,编译器大致分为3个过程:解析与填充符号表的过程插入式注解处理器的注解处理过程分析与字节码生成的过程Javac编译动作的入口为com.sun.tools.javac.main.JavaC…

Spring Data JPA 从入门到精通~JpaRepository介绍

从 JpaRepository 开始的子类,都是 Spring Data 项目对 JPA 实现的封装与扩展。JpaRepository 本身继承 PagingAndSortingRepository 接口,是针对 JPA 技术的接口,提供 flush()、saveAndFlush()、deleteInBatch()、deleteAllInBatch() 等方法…

深入理解程序从编译到运行

From:http://blog.chinaunix.net/uid-22327815-id-3540305.html 从 Hello World 说程序运行机制:http://www.sohu.com/a/132798003_505868 C/C 中如何在 main() 函数之前执行一条语句?:https://www.zhihu.com/question/26031933 …

技术力量 | 社会计算与计算社会: 智慧社会的基础与必然

来源:智慧城市决策参考摘要:基于社会计算,智慧社会可充分利用开放流动的大数据资源, 综合协调人、地、事、物和组织等各种要素, 形成信息对称、权利对等、扁平化组织的社会结构, 推动传统社会管理模式向分布式、集约化、信息化、智能化、全响…

php关闭当前页_php如何直接关闭页面注销SESSION

php如何直接关闭页面注销SESSION发布时间:2020-07-09 09:03:06来源:亿速云阅读:100作者:Leah这篇文章将为大家详细讲解有关php如何直接关闭页面注销SESSION,文章内容质量较高,因此小编分享给大家做个参考&a…

ELF格式文件符号表全解析及readelf命令使用方法

From:http://blog.csdn.net/yasi_xi/article/details/45197583 readelf命令:http://man.linuxde.net/readelf ELF文件格式解析:https://www.2cto.com/kf/201605/511370.html ELF文件格式解析:http://blog.csdn.net/earbao/arti…

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

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

谷歌大脑提出对智能体进行「正向-反向」强化学习训练,加速训练过程

原文来源:arXiv作者:Ashley D. Edwards、Laura Downs、James C. Davidson「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA在强化学习问题中,关于任务目标的制定,往往需要开发人员花费很多的精力,在本文中&…

Linux二进制实用工具Binutils工具集解析()

From:http://blog.csdn.net/zqixiao_09/article/details/50783007 GNU Binutils:http://www.gnu.org/software/binutils/ GNU Binutils详解:http://www.crifan.com/files/doc/docbook/binutils_intro/release/html/binutils_intro.html 交叉…

Spring Data JPA 从入门到精通~JpaSpecificationExecutor的使用方法

JpaSpecificationExecutor 源码和 API 我们也可以通过 idea 工具详细看其用法和实现类,JpaSpecificationExecutor 是 Repository 要继承的接口,而 SimpleJpaRepository 是其默认实现。而通过源码来看其提供的 API 比较简单、明了,有如下几个方…

谷歌人工智能野心:从“下围棋”开始走向商用赚钱

来源:腾讯科技作为人工智能研发的领先企业,谷歌已经开始从技术研发走向了产品商用,创造营收成为一个新目标。谷歌在人工智能领域进行研发的时间比较长,陆续收购了优秀的专业公司。鉴于此,谷歌获得了先发优势&#xff0…

Linux异步之信号(signal)机制分析

From:http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html From:http://kenby.iteye.com/blog/1173862 Linux下的信号详解及捕捉信号:http://www.jb51.net/article/90695.htm linux信号详解:http://blog.csdn.net/f…

DeepMind集成AI智能体架构「MERLIN」:基于目标导向智能体中的无监督预测记忆

来源:arXiv摘要:在自然界中,动物往往会执行目标导向的行为,尽管它们的传感器的范围有限。作者:Greg Wayne、 Chia-Chun Hung、David Amos、Mehdi Mirza、Arun Ahuja、Agnieszka Grabska-Barwinska、Jack Rae、Piotr Mi…

手机反编译java源码,Android反编译(一)之反编译JAVA源码

Android反编译(一)之反编译JAVA源码[目录]1、工具2、反编译步骤步骤1:把apk文件后缀名改为.zip步骤2:解压zip包得到classes.dex步骤3:将Dex反编译为Jar包(工具:dex2jar)命令: CMD>dex2jar.bat classes.dex步骤4:用j…