可以从Glassfish项目(glassfish-persistence-api)中获取它,还是可能有一个Hibernate jar?
答案 0 :(得分:14)
如果您正在使用maven,则添加以下依赖项应该可以正常工作
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
答案 1 :(得分:12)
如果您正在开发OSGi系统,我建议您从Springsource Enterprise Bundle Repository下载“bundfied”版本。
否则可以使用包含 javax.persistence 包的常规jar文件
答案 2 :(得分:12)
您可以使用与hibernate捆绑在一起的 ejb3-persistence.jar 。这个jar只包含javax.persistence包。
答案 3 :(得分:8)
在最新最好的Hibernate中,我能够通过在lib / jpa目录中包含hibernate-jpa-2.0-api-1.0.0.Final.jar来解决依赖关系。我在最近的下载中找不到ejb-persistence jar。
答案 4 :(得分:4)
hibernate.jar和hibernate-entitymanager.jar只包含org.hibernate。*包。所以你应该从Glassfish项目中获取它。
答案 5 :(得分:3)
对于JPA 2.1,可以在此处找到javax.persistence包:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
请参阅:hibernate-jpa-2.1-api on Maven Central 该模式似乎是在JPA版本更改时更改人工制品名称。如果继续这样,新版本可以在这里到达Maven Central:Hibernate JPA versions
上述JPA 2.1 APi可与Hibernate 4.3.7结合使用,具体为:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.7.Final</version>
</dependency>
答案 6 :(得分:3)
一般来说,我同意以上建议添加maven依赖的答案,但我更喜欢以下解决方案。
为完整的JavaEE配置文件添加API类的依赖项:
<properties>
<javaee-api.version>7.0</javaee-api.version>
<hibernate-entitymanager.version>5.1.3.Final</hibernate-entitymanager.version>
</properties>
<depencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>${javaee-api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
还要添加与特定JPA提供程序的依赖关系,如antonycc建议:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-entitymanager.version}</version>
</dependency>
注意API依赖关系部分中的<scope>provided</scope>
:这意味着相应的jar不会导出到工件lib/
中,而是由应用程序服务器提供。确保您的应用程序服务器实现了指定版本的JavaEE API。