JPA在数据持久化层的应用与原理探析_第1页
JPA在数据持久化层的应用与原理探析_第2页
JPA在数据持久化层的应用与原理探析_第3页
JPA在数据持久化层的应用与原理探析_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    jpa在数据持久化层的应用与原理探析    温立辉摘  要:针对java ee编程中的jpa持久化问题,讨论了jpa的适用场景,阐述jpa规范的应用原理;在论述中详细分析了jpa持久化过程中的4种不同数据实体状态,以及不同实体状态的转化条件及相关的api操作接口;同时也分析了数据实体间的关联关系,以及不同关联关系在jpa持久化orm技术中配置实现,最后说明了jpql语句的原生sql语句的区别以及其在java ee领域的重要作用。关键词:jpa  jpql  持久化规范  orm:tp311.52 

2、                             :a                        :1672-3791(2019)02(c)-0005-02jpa即java 持久化api(java persistence api),是java ee5后提出的的一个持久化规范,此规范参照了ejb3的 entity bean(实体

3、bean)实现过程,其使用jpql语句来对表实体进行crud的操作,在java语言企业级编程存在着非常广泛的应用。1  jpa概述jpa作为一个持久化规范,其专门负责定义与数据存储层的交互标准,定义交互过程,其作为规范,只定义了上层接口,并不负责具体的实现过程,实际上在开发市场中,jpa有众多的实现方式,如hibernate、toplink、openjpa等持久化框架。jpa作为一套数据持久化的规范,其思想对orm编程继承与细化,在java编程中由于面向对象编程思想与关系型数据库的思维差别,致使应用程序与关系数据库存在一定的交互障碍,orm作为面向对象的应用程序与关系型数据库间的交互

4、中介桥梁,解决了开发中编码问题,使用开发人员能用使用面向对象的思维去处理和操作关系库。2  jpa状态表述在jpa规范中,实体状态的变化都是通过entitymanager接口下的相关函数的被调用而触发的,一个实体从对象变成数据库表中的一条记录,一共可经历4个状态,分别是:新建状态(new)、游离状态(detached)、受控状态(managed)、删除状态(removed)。新建状态:当一个实体对象刚刚通过new创建出来,还未和其他持久化机制发生任何关联,这时这个实体的实例处于新建状态。游离状态:当实体对象已经从持久化机制中得到唯一主键,但实例未与持久化机制发生关联关系,则此时对象处

5、于游离状态,当通过entitymanager接口调用clear()方法,实例对象进入游离状态。受控状态:实体对象已经从持久化机制中得到唯一主键,且已经与持久化机制发生关联关系,则对象处于受控状态,当通过entitymanager接口调用persist()方法,实例对象进入游离状态。删除状态:如果一个实体对象满足受控的基本要求,即处于受控状态,此时将对象删除,则对象进入删除状态,当通过entitymanager接口调用remove()方法,实例对象到达删除状态。3  jpa关系实体表述jpa作为持久化的操作规范,其对应用程序中实体间的关系作了明确的定义,共分三大类型,分别是:一对一(o

6、ne to one)、一对多(one to many)、多对多(many to many),接下来以hibernate框架的jpa实现为载体来进行各种实体关系的分析。一对一:就是两个实体间,一方实体的任一实例只能对应于另一方实体唯一的实例。在日常生活中,例如个人与身份证号码的关系,每个人都有唯一的一个身份证号码,同时每个身份证号码都只能属于某一个人。具体实现需要在每个实体中引入对方实体作为本类的一个全局属性。如需要在用户(person)类中引入对方:private idcard idcard;同时需要在身份证(idcard)类引对方:private person person。还要在xml文件

7、做相应的设置,在person实体的映射文件中加入:;在idcard实体的映射文件中加入:。一对多:就是两个实体之间,一方实体的一个实例可以在另一实体中找到若干个与之对应的实例,但另一方实体的一个实例却只能对应对方实体的一个实例。例如,在一个家庭中一对父母親可以生育多个子女,但每个子女却都只能有一对父母亲。在具体实现中,需要在代表一方的父母实体 (father) 类中引入一个set集合属性:private set sons = new hashset(0),作为与多方的关联属性;同时需要在代表多方的子女实体 (son) 类中引入一个father类型属性:private father father。最后需要在father实体映射文件中配置:;并在son实体映射文件中配置:。科技资讯2019

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论