【问题标题】:Need to understand more on hibernate , JpaHIbernate & JPA需要更多地了解 hibernate 、 Jpa HIbernate 和 JPA
【发布时间】:2019-10-04 09:58:27
【问题描述】:

我明白jpa、hibernate的区别。需要了解 JPAHibernate 和 hibernate 的区别。

【问题讨论】:

  • 我知道程序上的区别。请帮助理解概念

标签: hibernate jpa


【解决方案1】:

这很简单:

JPA 是 Java Persistence API 规范并定义了一个接口。

Hibernate 是一个 JPA 实现。

就是这样。重要的一点是 Hibernate 比 JPA 有更多的特性,因为 JPA 标准涵盖了所有 JPA 实现都必须实现的一组通用特性。

此外,Hibernate 比 JPA 更老,并且有自己的接口。但是 Hibernate 提交者建议尽可能使用 JPA 接口。

【讨论】:

  • 谢谢...我知道,但我的实际问题是stackoverflow.com/questions/15002481/…...这实际上需要了解
  • 我需要了解 jpahibernate 库与 hibernate 不同的权利...如果 hibernate 是 JPA 的实现,那么 JPAHIbernate 是什么? JPAHibernate 和 hibernate 之间的差异,图书馆方面都不同,但在概念上如何区分这一点......请不要说 jpa 是规范而 hibernate 是实现,我需要 hibernate 和 JPAHibernate 之间的差异
【解决方案2】:

Hibernate 是一个 ORM 的实现,可以通过它自己的 API (Hibernate) 或通过 JPA 接口 (JPA Hibernate) 进行访问。更多info

Hibernate 是在 2001 中创建的,而 JPA 是在 2006 中创建的。我猜想 JPAHibernate 这个词是在它第一次实现 JPA 时出现的。

@org.hibernate.annotations.Entity 很特别:它允许添加 JPA 注释中不可用的参数。引用from doc

注意

@javax.persistence.Entity 仍然是强制性的,@org.hibernate.annotations.Entity 不是替代品。

【讨论】:

  • 嗨,谢谢@Benoit,为确保您使用的是 JPA,请仅包含 java.persistence 中的类/注释。不要包含 org.hibernate 中的任何内容(或者,如果您只想使用 Hibernate,则相反)。
  • 这是取自以下链接的一行:stackoverflow.com/questions/15040583/…
  • 我的观点是,如果我使用 Org.hibernate.entity 注释表将不会在 DB 中创建,这是正确的吗? @ID 也仅来自持久性 pkg
  • @Kathiresan.N 是的@Entity 实际上添加了信息,请参阅我的更新答案。
  • 嗨,benoit,我看到了你的解释,我的问题仍然存在,希望你阅读我从你提供的链接中获取的行,如果不是下面是行,这是从下面的链接中获取的行:stackoverflow.com/questions/15040583/… ..... 如果使用休眠,那么为什么我们必须使用 jpa pkg,你不能使用 hib @entity 注释创建表吗?假设 jpa 不存在,将使用实体创建表
猜你喜欢
  • 1970-01-01
  • 2013-02-06
  • 2013-12-14
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 2015-07-31
  • 1970-01-01
相关资源
最近更新 更多