在基于hibernate的应用程序中,我应该包含哪些jar以使用javax.persistence包?
可以从Glassfish项目(glassfish-persistence-api)中获取它,或者可能有一个Hibernate jar?
如果您正在开发OSGi系统,我build议您从Springsource Enterprise Bundle Repository下载“ 捆绑 ”版本。
否则,可以使用包含javax.persistence包的常规jar文件
如果你正在使用maven,添加下面的依赖应该工作
<dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency>
你可以使用与hibernate捆绑在一起的ejb3-persistence.jar 。 这个jar只包含javax.persistence包。
在最新最好的Hibernate中,我能够通过在lib / jpa目录中包含hibernate-jpa-2.0-api-1.0.0.Final.jar来解决依赖问题。 我没有在最近的下载中findejb-persistence jar。
hibernate.jar和hibernate-entitymanager.jar只包含org.hibernate。*包。 所以你应该从Glassfish项目中拿走它。
对于JPA 2.1,javax.persistence包可以在这里find:
<dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency>
请参阅: Maven Central上的hibernate-jpa-2.1-api该模式似乎是在JPA版本更改时更改人造名称。 如果这种情况继续发生,那么可以期待新版本到达Maven Central: Hibernate JPA版本
上面的JPA 2.1 APi可以和Hibernate 4.3.7结合使用,具体如下:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.7.Final</version> </dependency>
一般来说,我同意上面的build议添加maven依赖的答案,但我更喜欢以下解决scheme。
为完整的JavaEEconfiguration文件添加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提供者,如antonyccbuild议:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate-entitymanager.version}</version> </dependency>
注意API依赖部分中的<scope>provided</scope>
:这意味着相应的jar不会被导出到工件的lib/
,而是由应用服务器提供。 确保您的应用程序服务器实现了指定版本的JavaEE API。
- 查询指定的联接抓取,但抓取的关联的所有者不在select列表中
- 在模型类中使用javafx.beans属性
- 设置SQL Server的Maven依赖关系
- org.hibernate.annotations与javax.persistence
- Hibernate – cascade =“all-delete-orphan”的集合不再被拥有的实体实例引用
- 如何在Hibernate 4中configuration日志来使用SLF4J
- Hibernate表类是否需要Serializable?
- hibernate:“字段ID”没有默认值“
- @ManyToOne(可选= false)和@Column(nullable = false)之间有什么区别?