gpt4 book ai didi

java - JPA 和 Hibernate 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:53 25 4
gpt4 key购买 nike

据我了解,JPA 2 是一种规范,Hibernate 是 ORM 的工具。另外,我知道 Hibernate 比 JPA 2 有更多的功能。但是从实际的角度来看,真正的区别是什么?

我有使用 iBatis 的经验,现在我正在尝试学习 Hibernate 或 JPA2。我拿起 Pro JPA2 书,它一直提到“JPA 提供者”。例如:

If you think a feature should be standardized, you should speak up and request it from your JPA provider

这让我很困惑,所以我有几个问题:

  • 单独使用 JPA2,我可以通过简单地注释 POJO 来从数据库获取数据
  • JPA2 是否应该与“JPA 提供程序”(例如 TopLink 或 Hibernate)一起使用?如果是这样,那么与单独使用 JPA2 或单独使用 Hibernate 相比,使用 JPA2 + Hibernate 有什么好处?
  • 您能推荐一本实用的JPA2好书吗? “Pro JPA2”看起来更像是一本有关 JPA2 的圣经和引用资料(直到本书的后半部分才涉及查询)。有没有一本书采用问题/解决方案方法来解决 JPA2?

最佳答案

正如您所说,JPA 只是一个规范,这意味着没有实现。您可以使用 JPA 注释尽可能多地注释您的类,但是如果没有实现,什么也不会发生。将 JPA 视为必须遵循的准则或接口(interface),而 Hibernate 的 JPA 实现是满足 JPA 规范定义的 API 的代码,并提供底层功能。

当您将 Hibernate 与 JPA 结合使用时,您实际上正在使用 Hibernate JPA 实现。这样做的好处是您可以将 Hibernate 的 JPA 实现替换为 JPA 规范的另一个实现。当您直接使用 Hibernate 时,您将锁定实现,因为其他 ORM 可能使用不同的方法/配置和注释,因此您不能直接切换到另一个 ORM。

有关更详细的说明,请阅读我的 blog entry .

关于java - JPA 和 Hibernate 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com