实体JPA在数据持久化层的应用与原理探析

持久化  时间:2021-01-30  阅读:()

J PA在数据持久化层的应用与原理探析文档信息

目录

1? JPA概述

2? JPA状态表述

3? JPA关系实体表述

一对一就是两个实体间一方实体的任一实例只能对应于另一方实体唯. . .

一对多就是两个实体之间

正文

温立辉

摘?要针对Java EE编程中的JPA持久化问题讨论了JPA的适用场景阐述JPA规范的应用原理;在论述中详细分析了JPA持久化过程中的4种不同数据实体状态 以及不同实体状态的转化条件及相关的AP I操作接口;同时也分析了数据实体间的关联关系 以及不同关联关系在JPA持久化ORM技术中配置实现最后说明了JPQL语句的原生SQL语句的区别以及其在Java EE领域的重要作用。

关键字 JPA?JPQL?持久化规范?ORM

中图分类号 TP311.52? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文献标识

码 A? ? ? ? ? ? ? ? ? ? ? ?文章编号 1672-3791 2019 02

c -0005-02

JPA即Java持久化API Java Peistence API 是Java EE5后提出的的一个持久化规范此规范参照了EJB3的Entity Bean 实体B ean实现过程其使用JPQL语句来对表实体进行C RUD的操作在Java语言企业级编程存在着非常广泛的应用。

1? JPA概述

JPA作为一个持久化规范其专门负责定义与数据存储层的交互标准定义交互过程其作为规范只定义了上层接口并不负责具体的实现过程实际上在开发市场中 JPA有众多的实现方式如Hibernate、 Topl i nk、 OpenJPA等持久化框架。

JPA作为一套数据持久化的规范其思想对O RM编程继承与细化在Java编程中由于面向对象编程思想与关系型数据库的思维差别致使应用程序与关系数据库存在一定的交互障碍 ORM作为面向对象的应用程序与关系型数据库间的交互中介桥梁解决了开发中编码问题使用开发人员能用使用面向对象的思维去处理和操作关系库。

2? JPA状态表述

在JPA规范中实体状态的变化都是通过Ent i tyManager接口下的相关函数的被调用而触发的一个实体从对象变成数据库表中的一条

记录一共可经历4个状态分别是新建状态New 、游离状态

Detached 、受控状态Managed 、删除状态Removed

新建状态 当一个实体对象刚刚通过new创建出来还未和其他持久化机制发生任何关联这时这个实体的实例处于新建状态。

游离状态 当实体对象已经从持久化机制中得到唯一主键但实例未与持久化机制发生关联关系则此时对象处于游离状态当通过Enti tyManager接口调用clear 方法实例对象进入游离状态。

受控状态实体对象已经从持久化机制中得到唯一主键且已经与持久化机制发生关联关系则对象处于受控状态 当通过

EntityManager接口调用peist 方法实例对象进入游离状态。

删除状态如果一个实体对象满足受控的基本要求即处于受控状态此时将对象删除则对象进入删除状态当通过Ent ityManager接口调用remove  方法实例对象到达删除状态。

3? JPA关系实体表述

JPA作为持久化的操作规范其对应用程序中实体间的关系作了明确的定义共分三大类型分别是一对一one to one 、一对多

one to many 、多对多many to many 接下来以Hibernate框架的JPA实现为载体来进行各种实体关系的分析。

一对一就是两个实体间一方实体的任一实例只能对应于另一方实体唯一的实例。在日常生活中例如个人与身份证号码的关系每

个人都有唯一的一个身份证号码 同时每个身份证号码都只能属于某一个人。

具体实现需要在每个实体中引入对方实体作为本类的一个全局属性。如需要在用户Peon类中引入对方 private Idcard idcard;同时需要在身份证Idcard类引对方 private Peon peon。还要在XML文件做相应的设置在Peon实体的映射文件中加入 ;在Idcard实体的映射文件中加入 trained="true" />。

一对多就是两个实体之间一方实体的一个实例可以在另一实体中找到若干个与之对应的实例但另一方实体的一个实例却只能对应对方实体的一个实例。例如在一个家庭中一对父母親可以生育多个子女但每个子女却都只能有一对父母亲。

在具体实现中需要在代表一方的父母实体 Father 类中引入一个Set集合属性 private Set so = new HashSet 0 作为与多方的关联属性;同时需要在代表多方的子女实体 Son 类中引入一个Father类型属性 private Father father。最后需要在Father实体映射文件中配置 ;并在Son实体映射文件中配置

“JPA在数据持久化层的应用与原理探析”文档源于网络本人编辑整理。本着保护作者知识产权的原则仅供学习交流请勿商用。如有侵犯作者权益请作者留言或者发站内信息联系本人我将尽快删除。谢谢您的阅读与下载

昔日数据月付12元起,湖北十堰机房10M带宽月付19元起

昔日数据怎么样?昔日数据是一个来自国内服务器销售商,成立于2020年底,主要销售国内海外云服务器,目前有国内湖北十堰云服务器和香港hkbn云服务器 采用KVM虚拟化技术构架,湖北十堰机房10M带宽月付19元起;香港HKBN,月付12元起; 此次夏日活动全部首月5折促销,有需要的可以关注一下。点击进入:昔日数据官方网站地址昔日数据优惠码:优惠码: XR2021 全场通用(活动持续半个月 2021/7...

RAKsmart美国VPS上市,活动期间5折抢购仅$30,$1.99/月

RAKsmart机房将于7月1日~7月31日推出“年中大促”活动,多重惊喜供您选择;爆款I3-2120仅30美金秒杀、V4新品上市,活动期间5折抢购、爆款产品持续热卖、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量产品超低价热卖。美国VPS、日本VPS及香港VPS享全场7折优惠;爆款VPS $ 1.99/月限量秒杀,10台/天,售完即止, VPS 7折优惠码:VPS-TP-disRAKsmar...

DogYun香港BGP月付14.4元主机简单测试

前些天赵容分享过DogYun(狗云)香港BGP线路AMD 5950X经典低价云服务器的信息(点击查看),刚好账户还有点余额够开个最低配,所以手贱尝试下,这些贴上简单测试信息,方便大家参考。官方网站:www.dogyun.com主机配置我搞的是最低款优惠后14.4元/月的,配置单核,512MB内存,10GB硬盘,300GB/50Mbps月流量。基本信息DogYun的VPS主机管理集成在会员中心,包括...

持久化为你推荐
传奇类手游哪个好什么传奇手游还不错的 不烧钱 比较耐玩点小说软件哪个好用免费看小说,哪个软件好,要免费的小说软件哪个好用免费有什么好用的免费小说软件压缩软件哪个好现在哪个压缩软件最稳定又快 ?朱祁钰和朱祁镇哪个好历史上真实的明英宗是怎么样的?性格之类的。朱祁钰和朱祁镇的相关的最好可以详细点的51个人空间登录为什么登陆51博客个人空间就不能登陆QQdns服务器故障dns服务器异常怎么办铁通dns服务器地址嘉兴铁通的DNS服务器地址是多少?360云盘转存百度云盘怎样将360云盘中文件快速转存到百度云盘月抛隐形眼镜月抛隐形眼镜指的是什么
备案未注册域名 域名备案网站 香港ufo t楼 arvixe 电影服务器 sugarsync 彩虹ip 最好的空间 100x100头像 193邮箱 vip购优惠 免费申请个人网站 cdn加速是什么 ftp免费空间 卡巴斯基免费试用版 512mb 深圳主机托管 九零网络 windowsserverr2 更多