`

Hibernate与Jpa的关系,终于弄懂

    博客分类:
  • jpa
阅读更多

我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。

在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany等等。但它们提供的功能基础,有时候想定义的更细一些,难免会用到Hibernate本身的annotation。我当时想,jpa这 么弱还要用它干什么,为什么不直接使用hibernate的?反正我又不会换成别的实现。

因为我很快决定不再使用hibernate,这个问题就一直放下了。直到我现在在新公司,做项目要用到Hibernate。

 

我想抛开jpa,直接使用hibernate的注解来定义Model,很快发现了几个问题:

  1. jpa中有Entity, Table,hibernate中也有,但是内容不同
  2. jpa中有Column,OneToMany等,Hibernate中没有,也没有替代品

我原以为hibernate对jpa的支持,是另提供了一套专用于jpa的注解,但现在看起来似乎不是。一些重要的注解如Column, OneToMany等,hibernate没有提供,这说明jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两 套注解。要是这样,hibernate对jpa的支持还真够足量,我们要使用hibernate注解就必定要使用jpa。

实际情况是不是这样?在被群里(Scala交流群132569382)的朋友鄙视一番却没有给出满意答案的时候,我又想起了万能的stackoverflow,上去提了两个问:

  1. http://stackoverflow.com/questions/8306742/if-i-want-to-use-hibernate-with-annotation-do-i-have-to-use-javax-persistence
  2. http://stackoverflow.com/questions/8306793/why-jpa-and-hibernate-both-have-entity-and-table-annotations

第一个是问如果想用hibernate注解,是不是一定会用到jpa的。网友的回答:“是。如果hibernate认为jpa的注解够用,就直接用。否则会弄一个自己的出来作为补充”

第二个是问,jpa和hibernate都提供了Entity,我们应该用哪个,还是说可以两个一起用?网友回答说“Hibernate的Entity是继承了jpa的,所以如果觉得jpa的不够用,直接使用hibernate的即可”。

分享到:
评论

相关推荐

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中文版.zip

    赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中英对照版.zip

    赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...

    hibernate-jpa-2.1-api-1.0.0.final.jar.zip

    Hibernate与JPA的关系** Hibernate最初作为一个独立的ORM框架,后来成为了JPA规范的参考实现之一。JPA提供了一套标准API,允许开发者在不依赖特定ORM工具的情况下编写数据库操作代码。而Hibernate通过实现JPA规范...

    hibernate-jpa-2.0-api-1.0.1.Final-sources.jar

    hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码

    hibernate-jpa-2.1-api-1.0.0.final-sources.jar

    hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码

    hibernate-jpa.jar

    总的来说,Hibernate JPA.jar文件是Java开发者进行企业级应用开发的重要工具,它提供了JPA规范的实现,简化了数据库操作,促进了面向对象编程与关系型数据库之间的无缝集成。通过深入理解和熟练运用Hibernate JPA,...

    hibernate-jpa-2.0-api-1.0.1.Final.jar

    hibernate-jpa-2.0-api-1.0.1.Final.jar

    hibernate_ jpa.jar

    Hibernate JPA,全称为Java Persistence API,是Java领域中用于管理数据库对象的一种规范,它为Java应用程序提供了统一的ORM(对象关系映射)解决方案。Hibernate作为JPA的一个实现,极大地简化了数据库操作,使得...

    hibernate-jpa

    Hibernate与JPA的关系:** JPA 是一种规范,定义了如何在Java应用中管理和持久化数据。它为开发者提供了一套API,用于操作数据库,包括实体管理、查询语言和事务控制等。而Hibernate作为JPA的提供商之一,实现了...

    5.Hibernate 05 Hibernate结合JPA1

    在本文中,我们将探讨如何将Hibernate与Java Persistence API (JPA) 结合使用。首先,我们需要了解JPA的基本概念。 **1. 什么是JPA?** Java Persistence API (JPA) 是Java平台上的一个标准接口,它定义了用来管理...

    hibernate-jpa-2.1-api-1.0.0.Final.jar

    hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用

    mysql的驱动包,适合使用hibernate和jpa

    MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,特别是在使用Hibernate和JPA这样的对象关系映射(ORM)框架时。这两个框架极大地简化了数据库操作,但它们依赖于合适的数据库驱动来建立连接。本篇文章将深入...

    hibernate+jpa注解实现最简单的增删改查

    在Java开发中,Hibernate和JPA(Java Persistence API)是两种广泛使用的对象关系映射(ORM)框架,它们简化了与数据库交互的过程,使开发者可以使用面向对象的方式来操作数据。本教程将介绍如何使用Hibernate和JPA...

    JPA和Hibernate的关系

    ### JPA与Hibernate的关系 #### 一、JPA概述 **Java Persistence API (JPA)** 是一种用于管理Java应用中的关系型数据库的标准API。它的主要目的是为了提供一套统一的、可移植的对象-关系映射(ORM)解决方案。JPA...

    支持hibernate+jpa开发的jar包

    在Java世界中,Hibernate和Java Persistence API (JPA) 是两个强大的框架,它们极大地简化了对象关系映射(ORM)的过程,使得开发者可以更高效地处理数据库操作。本资源包集合了这些技术所需的核心库,方便开发者的...

    Hibernate JPA jar包

    Hibernate JPA与MySQL数据库的结合,需要配置合适的JDBC驱动和数据库连接参数。通过设置`hibernate.dialect`属性为`org.hibernate.dialect.MySQLDialect`,可以确保Hibernate能够正确地生成针对MySQL的SQL语句。 **...

    spring+springmvc+hibernate+jpa搭建

    **Hibernate**:Hibernate是一个强大的ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以用Java对象来操作数据库,而无需编写SQL语句,从而减少了代码量和出错的可能性。 *...

    hibernate-jpa学习

    2. **Hibernate与JPA的关系**:Hibernate是JPA的一个实现,它提供了更强大的功能,如二级缓存、查询语言HQL等。Hibernate-JPA则是Hibernate提供的一个适配器,使得开发者能够使用JPA的API来操作Hibernate。 3. **...

    hibernate-jpa-2.0-api-1.0.1.Final-sources

    Hibernate JPA 2.0 API是Java持久化领域的重要组成部分,它为开发人员提供了一种规范化的接口,用于与关系数据库进行交互。这个源码包"hibernate-jpa-2.0-api-1.0.1.Final-sources"包含了完整的源代码,可以帮助我们...

    hibernate jpa 入门案例依赖jar

    在Java世界中,Hibernate和Java Persistence API (JPA) 是两个强大的对象关系映射(ORM)框架,它们简化了数据库操作,使得开发者可以使用面向对象的方式处理数据。本篇文章将深入探讨Hibernate JPA入门案例所需的...

Global site tag (gtag.js) - Google Analytics