我对Hibernate感到困惑吗?

问题描述:

我学习了ORM的JPA。现在我被要求使用Hibernate作为我的提供者。 如果我从Hibernate入手,它会以不同的概念出现。 请说我如何将JPA和hibernate联系在一起。 JPA将我的Java代码减少为持久化对象的简单代码。 现在hibernate对JPA有什么帮助,它提供了什么。 任何人都请简单解释。我对Hibernate感到困惑吗?

+1

Hibernate的全面支持JPA所以理论上你切换到休眠时不需要更改JPA设置。你能更具体地说明你的问题吗? – 2010-09-21 09:45:50

+2

多一点耐心。自从你提出问题以来,甚至还没有一刻钟,你已经抱怨了。让它去几个小时。吉兹...的 – musiKk 2010-09-21 09:48:01

+0

可能重复[相似性和JPA和休眠之间的区别。(http://*.com/questions/1770211/similarity-and-difference-between-jpa-and-hibernate) – 2010-09-21 10:55:50

Hibernate不是另一个概念;它只是许多JPA实现中的一个。另一个是EclipseLink。如果你和实现遵守规范,那么切换实现只是改变persistence.xml中的几行(例如<provider>标记和实现特定属性)。至少在理论上...

+0

非常感谢你对不起,以后我会耐心的。 – 2010-09-21 09:59:10

+2

由于快速响应时间很容易被宠坏。 ;) – musiKk 2010-09-21 10:26:01

由于Pascal回答here

JPA只是一个API。要使用JPA,您需要实现此API,并且此类实现称为持久性提供程序(EcliseLink,休眠,OpenJPA)

JPA是持久化对象的API规范。它定义了一个类似SQL的查询语言,以及用于定义实体和关系的注释。

Hibernate是JPA的实现,有各种扩展以及遗留API和查询语言。只要你不使用任何的Hibernate的扩展,并与JPA API坚持,你可以或多或少地把它互换与其他JPA实现,如OpenJPA中,TopLink的等