1
据我所知,JPA 2.0已被批准为2009年12月的最终版。为什么maven不支持jpa 2.0?
但是中央存储库为1.0.2和3.0-public_review提供了pom文件声明。
那么如何使用maven使用当前版本的JPA 2.x?
据我所知,JPA 2.0已被批准为2009年12月的最终版。为什么maven不支持jpa 2.0?
但是中央存储库为1.0.2和3.0-public_review提供了pom文件声明。
那么如何使用maven使用当前版本的JPA 2.x?
JPA本身就是API定义,您需要一个已经实现API的提供者。我倾向于使用hibernate,但还有其他的如EclipseLink或OpenJPA。如果您只坚持核心JPA功能,那么您将能够在稍后的日期轻松交换提供商。
如果您正在使用特定的EE应用程序服务器,您可能会影响您选择的提供程序。 JPA现在是EE规范的一部分,但每个服务器都使用不同的提供程序。例如。我相信JBoss使用休眠而glassfish使用EclipseLink。
考虑到这一点,这就是我如何在我的pom.xml中声明我的hibernate依赖项。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.8.Final</version>
</dependency>
这将自动拉入JPA 2.0 API jar以及其他依赖项,如验证。
通常你想要一个JPA提供者/实现,以及JPA api。例如,hibernate有自己的仓库,你可以使用它来下载这两个仓库。 –
http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api –
与所有其他标准Java API不同,javax.persistence API(组)似乎太懒惰,无法发布“官方“JPA 2.0 API和JPA 2.1 API jar,因此您必须依赖JPA实现提供的(未验证的)javax.persistence。请参阅https://java.net/jira/browse/JPA_SPEC-19和https://java.net/jira/browse/JPA_SPEC-60 – DataNucleus