什么是JPA,JPA的概念

jpa详解 JPA使用 阅读详情
  • 什么是JPA

 JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口,它是一套标准,具体的实现要根据不同的厂商来提供,就跟JDBC类型

  • 持久化单元

        持久化单元是运行时的配置的主要单元,它定义了提供程序在程序执行期间管理持久化类所需要知道的各种信息,例如数据库链接配置,实体信息,就是在持久化单元里面配置,可以在persistence.xml对它进行配置(在Spring中就不需要)

        对于每一个持久化单元,都存在一个EntityManagerFactory,所以可以将持久化单元的配置视为对于持该持久化单元的EntityManagerFactory工厂配置

        每个持久化单元都必须有一个名称,这样,应用程序在指定范围内唯一的标识它

  • 实体管理器

        实体在数据库中真正持久化之前,需要调用一个特定的API,这个API就是由实体管理器实现,在使用实体管理器的持久化API之前,实体就是一个普通的Java对象

        实体管理器是Java实体对象与数据库交互的中介,它负责管理一组对应的实体,包括这组实体的CRUD操作,实体管理器也负责与持久化上下文PersistenceContext进行交互,可以实现对实体不同状态转换的操作

        通过显示的把实体作为参数传递到一个方法中调用,或者是从数据库直接读取它,实体管理器获得一个实体的引用,此时,将该对象称为由实体管理器托管

        将实体管理器配置为能够持久化或管理特定类型(实体)的对象,读取他们和把他们写入到一个给定的数据库,并且它是由一个特定的持久化提供程序PersistenceProvider来实现,提供程序为整个Java持久化API提供后台实现引擎,从EntityManager到查询类以及SQL的实现   

        所有的实体管理器均来自EntityManagerFactory类型的工厂,实体管理器的配置是以创建它的EntityManagerFacotry为模版,但是把它单独定义为持久化单元,持久化单元隐式或显示的决定设置,特定的EntityManagerFacotry实例,的所有实体管理器上,使用的实体类都限定到该持久化单元,因此,在持久化单元及其具体的EntityManagerFactory存在一一对应关系
        持久化单元为了允许区分不同的EntityManagerFacotry而对他们进行命名,从而,应用程序可以决定采用哪一个配置或者持久化单元,用于特定实体的操作    

  • 实体操作和生命周期

            实体属于一个单一的持久化上下文,在任何给定的时间都不应该由一个以上的持久化上下文进行管理,说白了只能允许一个持久化上下文管理一个实体

        新建 New–即未有id值,实体新创建,尚未与持久化上下文关联
        托管 Managed–有id值,实体当前处于持久化上下文的管理之下,任何对该实体的更改都会在事务提交时自动同步到数据库
        游离 Detached–有id值,实体曾经处于托管状态,但现在已从持久化上下文中分离。它不再受持久化上下文的管理,因此对实体的更改不会自动同步到数据库
        删除 Removed–有id值,实体已被标记为删除。在事务提交时,它将从数据库中删除。

  • 持久化上下文

        实体管理器在任何给定的时间内所管理的实体对象的集合,它一般包含有当前事务范围内的,被管理的实体对象(Entity)的数据集合,称为它的持久化上下文        
        在使用JPA等ORM框架进行持久化时,持久化上下文是一个重要概念,它充当了应用程序和数据库之间的缓冲区,当通过ORM框架操作数据库时,实际上是与持久化上下文交互,而持久化上下文负责将这些操作转换为对应数据库的操作,而真正操作数据库的则是实体管理器

        在任何时候,具有相同持久化标识(ID)的Java实例,在持久化上下文中只能存在一个,也就是ID相同的实例只能存在一个

  • JPA的关系图

【Java开发实战攻关】「JPA技术专题」带你一同认识和使用JPA框架 1.Java Persistence API:Java对象持久化API2.JDK5.0 平台的标准 ORM 规范,可以让 Java 程序用统一方式访问持久层3.JPA 和 Hibernate 的关系JPA 是 Hibernate 的一个抽象(JDBC Interface 与 JDBC驱动的关系)JPA 本质上就是一种 ORM 规范,不是 ORM 框架,因为 JPA 并未提供 ORM 实现,它只提供了 API 接口,具体的实现由 ORM 厂商提供实现。 阅读详情

相关推荐

Spring Data JPA用法详解

Spring Data JPA: JPA(Java Persistence API)即java持久化API,它的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。总的来说,JPA包括以下三方面的技术: ORM映射元数据:支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系 API:操作实体对象来执行CRUD操作 查询语言:通过面向对象而非面向数据库的

li_w_ch的博客 7494

JPA 概述及常用注解详解、SpringDataJpa 使用指南

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。

Mr. David 专栏 1万+

Exposure Fusion

MertensTMO原理详解: 文章:2007年Exposure Fusion 论文链接:http://ntp-0.cs.ucl.ac.uk/staff/j.kautz/publications/exposure_fusion.pdf 论文代码:C版本:https://github.com/JawThrow/ExposureFusion python版本:https://github.com/lzocro/Exposure-Fusion matlab版本:https://github.com/Mericam

大长腿不解释 1651

JPA—简介

JPA的使用什么是JPA;JPA(Java Persistence API)是将实体对象持久化到数据库中的一种规范。JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询

weixin_73037441的博客 5966

不止于修改器:用Cheat Engine(CE)的Lua脚本和D3D Hook打造你的游戏辅助界面

本文深入探讨了Cheat Engine(CE)的高级功能,包括Lua脚本自动化和D3D Hook技术,帮助用户从基础内存扫描升级到开发具有专业图形界面的游戏辅助工具。通过实战示例和优化策略,展示了如何创建高效、稳定的游戏辅助系统,并打包为独立训练器。

weixin_28700411的博客 312

AWSIM模拟器 新增多相机

本文介绍了基于Unity6引擎对AWSIM自动驾驶模拟器的优化方案,主要针对多相机系统的扩展实现。作者通过修改EgoVehicle.cs和AutowareSimulationDemo.cs核心代码,将原单相机系统升级为5相机配置。关键技术点包括:1)使用List容器管理多个CameraSensor组件;2)完善相机初始化流程;3)配置5个相机UI显示窗口;4)修改ROS话题设置。优化后的系统可支持BEVFusion等多传感器融合算法的测试验证,为Autoware.universe 0.45.0及以上版本提供

W805698955的博客 827

JPA ----( java persistent api) java持久化接口规范

JPA(Java Persistence API)是 Java 官方的 ORM 规范,提供了一套用于对象关系映射(Object-Relational Mapping)的标准。JPA 定义了如何将 Java 对象(实体)持久化到关系数据库中,但它本身没有具体的实现,常见的实现包括 Hibernate、EclipseLink 等。

qq_55272229的博客 5818

非线性动力学_用MatCont分析非线性动力学方程组(一)

写在前面:笔者打算写两到三篇系列文章介绍MatCont,此为第一篇《用MatCont分析非线性动力学方程组(一)》。MatCont是一个基于Matlab而开发的免费工具包,专门用来做非线性动力学模型分叉、向量场、周期性等分析,符号(连续性)运算和数值(离散性)运算均适用。该工具的开发及研究项目由比利时Ghent大学的Willy Govaerts教授、荷兰Utrecht大学的Yuri Kuznets...

weixin_39700215的博客 2765

JPA的概念与Hibernate

JPA的概念与Hibernate 目录 JPA的概念与Hibernate一. JPA的概念二. Hibernate框架简介三. 基本操作1. 导入包2. 编写配置文件3. 编写代码4. Hibernate中对象的三种状态5. 一级缓存6. 二级缓存7. Hibernate中延迟加载8. Hibernate的关联关系9. Hibernate查询 一. JPA的概念 Java persistance ...

qq_36501760的博客 446

【网络安全】零基础入门网络安全劝退指北

作为从16年接触网络安全的小白,谈谈零基础如何入门网络安全,有不对的地方,请多多指教。 这些年最后悔的事情莫过于没有把自己学习的东西积累下来形成一个知识体系。 后续我也会陆续的整理网络安全的相关学习资料及文章,与大家一起探讨学习。 如何入门 简单了解网络安全 网络安全就是指的确保网络系统中的数据不被别人破坏,而网安工程师就是涉及程序来维护网络安全。 网安方向有很多职位,比如安全产品工程师,安全分析师,数据恢复工程师,网络架构工程师,安全编程工程师,以及网络集成工程师等。 工作内容主要包括: 安全评测,风

互联网老辛 4577

Oracle EBS 寄销/VMI(2)-->采购篇

上篇有一部分设置需要建BPA后,将BPA编号与批准的供应商相关联.     本篇主要是讲的内容:一揽子采购协议-->准标采购订单-->收接入库-->子库转移-->创建冲减通知-->'按接收开票' 自动开票程序 1. PO-->采购订单à采购订单 创建一揽子采购协议,确定物料

陈显平的专栏-Oracle EBS 1万+

SpringData JPA的概念

SpringData JPA的概念 什么是SpringData? spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。 SpringData JPA 是Spring提供的持久层的解决方案 SpringData JPA其实就是Spring对JPA操作的封装(enti...

L__MY的博客 242

2025 提高电力交易价格预测的疾风大模型方法综述

电力现货市场价格预测正转向大模型驱动的新范式。传统方法在极端波动、政策突变等场景下表现不佳,而Transformer、预训练时序模型(如Chronos-Bolt)和LLM混合框架展现出显著优势。关键技术包括多模态数据融合、两段式预训练微调、MoE架构和LLM-RAG增强解释性。案例显示,澳大利亚NSW市场误差降低43%,但混合模型路由仍必要。未来趋势涵盖数字孪生电网和多智能体竞价,需平衡模型创新与行业合规要求。大模型通过跨域学习与业务耦合提升预测,但需持续优化数据隐私、算力消耗和极端事件应对能力。

专注AI大模型,软件混淆,授权 1051

JPA的概念

JPA:JAVA Persistence API 一套和JDBC形式上类似的有关持久化操作的API,但是这一套API用来满足ORM的持久方式;是EJB3.0规范所对应的JSR220的一部分,但是其内容完全是独立出来,所以应该说EJB3.0基于JPA之上做持久化管理,单独的JAVA应用程序也可以基于JPA做持久化。 JPA在未来可能作为独立规范,对应新的JSR,并且有可能纳入JDK中。但是当前,...

netbaixc的专栏 172

基于Simulink环境,提供一个关于如何对DC-DC变换器进行效率分析的仿真建模

效率定义:变换器效率通常定义为输出功率与输入功率之比,即 η=PoutPinη=Pin​Pout​​。重要性:高效率意味着更少的能量损失和更好的热管理,对于便携式设备、电动汽车等应用至关重要。挑战开关损耗:高频操作带来的开关器件损耗。导通损耗:电流流过电阻性元件(如MOSFET导通电阻)造成的能量损失。控制策略:优化控制算法以减少损耗。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的DC-DC变换器。根据工作频率和谐振元件值确定合适的电路参数。

xiaoheshang_123的博客 154

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JPA Example的概念和用法

JPAExample是SpringDataJPA提供的查询方式,通过实体样例构造查询条件。核心组件包括:Example(封装查询实体和匹配规则)、Probe(查询条件实体)、ExampleMatcher(定义匹配策略)。支持字符串匹配策略(精确/前缀/后缀/包含)、忽略大小写、属性级配置等。优点包括类型安全、自动处理null值、易维护;缺点是功能有限、不支持复杂查询、性能不如原生SQL。适用于简单条件查询场景,可通过自定义匹配规则实现灵活查询。

Filotimo_的博客 273

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JPA详解

JPA 的简介 Java Persistence API(Java 持久层 API):用于对象持久化的 API 作用:使得应用程序以统一的方式访问持久层 JPA 与 Hibernate的什么关系: ​ 1)JPA 是 一个标准的接口 ​ 2 Hibernate 是 JPA 的一个实现 : Hibernate是如何实现与JPA的关系的? ​ 通过hibernate-annotat...

程序员小刘 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JPA 和 ORM 概念

gcf_oo的专栏 7620

持久化框架之JPA、Hibernate、Spring Data JPA间关系

前言 我们都知道Java 持久层框架访问数据库的方式大致分为两种。一种以 SQL 核心,封装一定程度的 JDBC 操作,比如: MyBatis。另一种是以 Java 实体类为核心,将实体类的和数据库表之间建立映射关系,也就是我们说的ORM框架,如:Hibernate、Spring Data JPA。 今天咱们就先来了解一下什么是Spring Data JPA? JPA 在开始学习Spring Da...

craftsmanity的博客 543

一文了解JPA、Hibernate、Spring Data JPA

文章目录前言JPA是啥- JPA为我们提供了以下规范:Hibernate是啥Hibernate 和 JPA是什么关系呢Spring Data是啥Spring Data JPA又是啥- Spring Data JPA给我们提供的主要的类和接口Spring Data JPA和Hibernate的关系总结: 前言        我们都知道Java 持久层框架访问数据库的方式大致分为两种。一种以 SQL 核心,封装一定程度的 JDBC 操作,比如

weixin_45749993的博客 260

Spring Data JPA 和 JPA

Spring Data项目的目的是为了简化构建基于Spring框架应用的数据访问技术,包括非关系数据库、Map-Reduce框架、云数据服务等等;另外也包含堆关系数据库的访问支持。 Spring Data包含多个子项目: Spring Data Commons Spring Data JPA Spring KeyValue Spring Data LDAP Spring Data MongoDB Spring Data REST Spring Data Redis …等 1. Spring Data特点

Vivienne_ChenW的博客 403

JPA、Hibernate、Spring data jpa之间的关系,终于明白了

什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; 如:@Entity、@Table、@Column、@Transient等注解。 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和.

wushijuewu 1817

JPA

JPA什么是JPAJPA和Hibernate的关系JPA的供应商JPA的优势JPA包含的技术 什么是JPA   JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。   Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;...

JustinNeil的博客 374

JPA学习总结笔记

JPA 学习笔记 jpa是什么 Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系 JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系): JPA 是规范:JPA 本质上就是一种 ORM 规范,不是OR...

马哥私房菜 2909

(二)JPA和SpringDataJPA简介

什么是JPAJPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术ORM:通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质就是将数据从一种形式转换到另外一种形式。结束现在Hibernate、...

安卓学吧 2713
上一篇: SpringDataJPA中,@DomainEvents和@AfterDomainEventPublication注解的作用
下一篇: JPA的基本概念
安缇吖
博客等级 码龄9年 411粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值