什么是sun jdk带来的jpa实现

时间:2015-06-20 18:43:11

标签: java hibernate jpa

请问一些问题:

  1. Sun JDK(例如7个)附带的JPA实现是什么?
  2. 如果我的应用程序在应用程序服务器上运行(例如JBoss - 我理解的是Hibernate实现),那么实际的实现是什么?来自JDK或Hibernate的那个?

3 个答案:

答案 0 :(得分:1)

1)JPA和任何特定的JPA提供商都没有JDK。

2)如果你在JBoss上运行应用程序,默认情况下将使用Hibernate(它是一个JBoss模块)。当然,您可以使用您想要的任何JPA提供程序(通过在persistence.xml中指定它并部署提供程序实现jar)。

答案 1 :(得分:0)

JPA不是一个实现,只是接口。 Hibernate是一个JPA实现。问题是,如果您将代码与JPA而不是Hibernate直接耦合,您可以转移到另一个JPA实现(可疑)更少的工作。

所以1)据我所知,JDK没有提供JPA实现,2)你将使用hibernate,但要考虑上面关于耦合的注释。

请查看此相关问题,以了解JPA是什么以及可以使用哪些JPA实现:What is a JPA Provider?

答案 2 :(得分:-1)

JPA不是实现,它是规范或接口。

Hibernate是JPA提供商。

  

JPA是用于访问,持久化和管理Java对象与关系数据库之间的数据的规范。正如定义所说的API,它只是规范。 API没有实现。 JPA规定了用于开发遵循标准的接口的规则和指南。直截了当:JPA只是实现对象关系映射(ORM)的指南,并且没有实现的底层代码。其中,Hibernate是JPA指南的实际实现。当hibernate实现JPA规范时,JPA组将遵循规范中提到的所有标准对其进行认证。例如,JPA指南将提供作为JPA实现的一部分实现的强制和可选功能的信息。

要回答您的第二个问题,您可以选择使用哪种ORM工具。