请问一些问题:
答案 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工具。