首页 热点资讯 义务教育 高等教育 出国留学 考研考公

如何理解jpa与比hibernate的关系?单单使用hibernate可以实现数据持久化?单单使用jpa可以实现么?

发布网友 发布时间:2022-04-03 00:14

我来回答

2个回答

懂视网 时间:2022-04-03 04:35

Hibernate是JPA规范的一个具体实现。hibernate有JPA没有的特性 ,hibernate 的效率更快,JPA 有更好的移植性,通用性。

       JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

  

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

热心网友 时间:2022-04-03 01:43

jpa是java的持久化标准,hibernate是jpa的具体实现,所以单独用jpa是不行的,java只实现了jpa的接口,追问您好,我想再请教您,jpa是不是要结合一个实现去应用,比如hibernate或者什么toplink的一个orm框架?jpa中都是比如保存实体:entityManager.persist方法,它的实现中是不是就是:创建entitymanagerFactory,生成entitymanager,开启事务,保存,等一系列的实现?我想看到源码但是只看到了接口,没找到实现,,,

追答是的,jpa只是定义标准,没有具体实现,就像一个接口如果没有类实现,你是不能直接new的,jpa也是,你看他的整个源码基本都是接口定义,没有实现,当然一些特殊的工具类除外。所以,你说的:entityManager.persist方法是保存类到数据库,但是至于你要怎么实现次功能呢,要么自己编写,要么就是框架实现,hibernate就是对次的一种实现。当然还可以在此基础上进行扩展。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com