2013-12-15 48 views
1

据我所知,JPA 2.0已被批准为2009年12月的最终版。为什么maven不支持jpa 2.0?

但是中央存储库为1.0.2和3.0-public_review提供了pom文件声明。

那么如何使用maven使用当前版本的JPA 2.x?

+0

通常你想要一个JPA提供者/实现,以及JPA api。例如,hibernate有自己的仓库,你可以使用它来下载这两个仓库。 –

+0

http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api –

+1

与所有其他标准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

回答

1

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以及其他依赖项,如验证。