问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jpa与实体bean是什么关系呢?

发布网友 发布时间:2022-04-10 22:22

我来回答

2个回答

热心网友 时间:2022-04-10 23:51

JPA技术:

Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;其二,Sun希望整合对ORM技术,实现天下归一。

  JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。

  JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:

  ORM映射元数据

  JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

  JPA 的API

  用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

  查询语言

  这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

    

    JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。因此开发人员只需使用供应商特有的API来获得JPA规范没有解决但应用程序中需要的功能。尽可能地使用JPA API,但是当需要供应商公开但是规范中没有提供的功能时,则使用供应商特有的API。

  1 Hibernate

  JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,目前来说应该无人能出其右。从功能上来说,JPA现在就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的JPA(Java Persistence API) 兼容认证。

  只要熟悉Hibernate或者其他ORM框架,在使用JPA时会发现其实非常容易上手。例如实体对象的状态,在Hibernate有自由、持久、游离三种,JPA里有new,managed,detached,removed,明眼人一看就知道,这些状态都是一一对应的。再如flush方法,都是对应的,而其他的再如说Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了manager,所以从 Hibernate到JPA的代价应该是非常小的

  同样,JDO,也开始兼容JPA。在ORM的领域中,看来JPA已经是王道,规范就是规范。在各大厂商的支持下,JPA的使用开始变得广泛。

  2 Spring

  Spring + Hibernate 常常被称为 Java Web 应用人气最旺的框架组合。而在 JCP 通过的 Web Beans JSR ,却欲将JSF + EJB + JPA 、来自 JBoss Seam(Spring 除外)的一些组件和EJB 3(目前能够提供有基本拦截和依赖注入功能的简化 Session Bean 框架)的一个 Web 组合进行标准化。如今的 Spring 2.0 为 JPA 提供了完整的 EJB 容器契约,允许 JPA在任何环境内可以在 Spring 管理的服务层使用(包括 Spring 的所有 AOP 和 DI 增强)。同时,关于下一个Web应用组合会是 EJB、Spring + Hibernate 还是 Spring + JPA 的论战,早已充斥于耳。

  在Spring 2.0.1中,正式提供对JPA的支持,这也促成了JPA的发展,要知道JPA的好处在于可以分离于容器运行,变得更加的简洁。

  3 OpenJPA

  OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写业务逻辑上。OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB 3.0 标准的容器集成。

  4 其它

  目前支持的实现包括Toplink、Hibernate Entitymanager等。TopLink以前需要收费,如今开源了。OpenJPA虽然免费,但功能、性能、普及性等方面更加需要加大力度。

  对于EJB来说,实体Bean一直是被批评的对象,由于其太复杂和庞大。JPA的出现,很大程度的分离了复杂性。这让EJB的推广也变得容易。

  总而言之,JPA规范主要关注的仅是API的行为方面,而由各种实现完成大多数性能有关的调优。尽管如此,所有可靠的实现都应该拥有某种数据缓存,以作为选择。但愿不久的将来,JPA能成为真正的标准。

实体Bean技术:

    EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.net技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。

    Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

JPA和实体Bean的关系:

    由于历史的原因,EJB 3与JPA有着藕断丝连的关系。EJB 2.X中,EJB有三种类型的Bean,分别是会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message Driven Bean)。

    随着EJB 3规范的推出,EJB中的实体Bean(Entity Bean)逐渐被JPA规范所替代,这也正是为什么JPA的规范包含在EJB 3的规范中的原因。但JPA不仅能在EJB环境中使用,也能在J2SE的环境中使用,相对于EJB 2.X中的实体Bean,使用的范围更光阔。

    总之,简单的说,JPA虽然出自EJB3,但其使用的范围却大于EJB3,不仅可用在Java EE 5.0的环境中,也可以应用在Java SE的环境中。如图所示,清楚的表明了EJB3与JPA的关系。

热心网友 时间:2022-04-11 01:09

说那么大堆干嘛

Hibernate用过没?JPA做的事就是和Hibernate一样,只是JPA是sun的EJB3推出来的标准,Hibernate是采用映射文件,JPA采用的是注释,其他大同小异,Hibernate在3.几的版本后,支持了JPA的方式映射。

你说的实体Bean是不是就是持久化的对象?即使在内存中对应数据库的对象,在JPA里和hibernate也很相似,也是游离,持久等几种状态。

如果你会hibernate很好懂JPA。但是我还是喜欢Hibernate,以及hbm配置文件的方式,调整,改动方便,把配置和持久化的BEAN分离开了。清晰
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
好听简单的店铺名字店铺好听的名字大全 ...还脱皮。一年四季都这样,夏天能好一点,冬天严重时怎么回事啊?应该怎 ... 手,脚一年四季脱皮怎么办 地铁跑酷 地铁跑酷鼠小意会回归吗? 印度国家安全卫队身经百战 飞机驾驶室的机舱门在飞行时关闭么?为什么会有劫机成功的案例,不... 为什么中国不会劫机 急求翻译几个句子! 急求!!翻译句子!在线等! 我们和公婆住一起,大姑子每周末都过来耍 Magic Mouse和罗技M558哪个更加好用 罗技的m558在mac上用的怎么样急求 我高中学历可以报考PMP吗? 罗技m558耗电异常 微软Sculpt舒适滑控鼠标和罗技M558无线鼠标有什么区别 罗技M558无线鼠标和罗技G502游戏鼠标哪个好 罗技m558这款鼠标配合MacBook Pro使用的话效果怎么样 罗技鼠标m558和g102哪个好用? 罗技m558和m557哪个好 罗技M505.515.525哪个更好用 罗技M558怎么样?罗技M558好吗 厨房装个空调可以吗?哪个牌子的值得选? 有没有可以装在厨房里的空调?夏天真的太热了 java中jpa什么意思? 上古卷轴5黑暗之魂装备mod说在溪木镇里,找不到啊,在哪里? 上古卷轴5有只有主角才有的动作MOD么? 安装一个上古卷轴5的mod,能打开游戏但进游戏后人的身体是黑色,而且NPC和角色都没有动作,怎么办 上古卷轴5安装了动作MODYY Anim Replacer-Mystic就会发生女角色一停着不动就会举着手摆着一个动作 你有没有上古卷轴5的邪恶mod动作,我急需! 上古卷轴5那个黑暗之魂风格组合MOD是什么 急求条形码生成器软件下载 罗技m558的使用问题 想买个罗技M558蓝牙鼠标,这个鼠标和wifi信号会不会互相干扰 请问条形码生成器哪里有下载? 【高品质】欧美歌曲精选的歌,求百度网盘下载资源 CDR,有没有条形码自动生成批量的插件?急求! 盘点欧美好看的免费的电影,【免费高清】在线观看百度网盘资源 除了b站你们用什么app看动漫 跪求欧美好看的爱情电影系列,【免费高清】在线观看百度网盘资源 盘点欧美最新影片,【免费高清】在线观看百度网盘资源 什么看漫画的APP比较好用 跪求欧美最火的黑道电影,【免费高清】在线观看百度网盘资源 跪求欧美高清免费观看全部,【免费高清】在线观看百度网盘资源 【合集】欧美优秀电视剧,【免费高清】在线观看百度网盘资源 【合集】欧美电视剧大全,【免费高清】在线观看百度网盘资源 盘点十部必看欧美爱情电影,【免费高清】在线观看百度网盘资源 完整版的漫画软件,内容没有删减 网上买的机票 怎么知道是在哪个窗口办理托运?还有就是登机牌上有在哪个窗口办托运这些信息吗?_百度问一问 - 信息提示 北京常住人口2021总人数口是什么?