我目前正在从事一个项目,该项目需要javax.persistence包中的EntityManager、EntityManagerFacotry和持久性。它似乎是针对数据库服务的,但是当前的代码并没有很好的文档记录。通过搜索google,似乎应该有一个xml文件与此一起出现,但也没有一个。我想我的问题很简单,我如何让这些未解决的导入消失?我是否必须在构建路径中添加另一个jar?似乎我不应该这样做,因为它从1.5开始就存在了。
任何帮助都是非常感谢的。
发布于 2013-03-26 15:01:46
hibernate-distribution-3.6.10.Final\lib\jpa :添加这个jar来解决这个问题。它位于lib文件夹中,里面有一个名为jpa ->文件夹,里面有hibernate-jpa-2.0-1.0.1。folder
发布于 2018-08-01 22:12:32
我遇到了同样的问题,并意识到,由于我使用的是spring boot,为了解决这个问题,我需要做的就是添加以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>发布于 2016-05-19 12:59:10
是,您可能需要添加另一个jar或依赖项
javax.persistence.*是Java Persistence API (JPA)的一部分。它只是一个API,你可以把它想象成一个类似于接口的东西。JPA有很多实现,这个answer对每种实现都做了很好的阐述,以及使用哪种实现。
如果您的javax.persistence.*导入无法解析,您将需要提供实现JPA的jar。您可以通过手动下载它(并将其添加到您的项目中)或通过将声明添加到依赖项管理工具(例如,Ivy/Maven/Gradle)来做到这一点。有关Maven上的EclipseLink实现(参考实现),请参阅here。
这样做之后,您的导入应该被解决。
另请参阅here了解JPA是关于什么的。您引用的xml可能是persistence.xml,链接的第3页对此进行了解释。
尽管如此,您可能只是指向了错误的目标运行时
如果我没记错的话,如果要将JPA部署到JBoss等JavaEE应用服务器中,则不需要提供JPA实现。请参阅here“请注意,当您在JavaEE6应用服务器(例如JBoss AS 6)中部署应用程序时,通常不需要它。”尝试更改项目的目标运行时。
如果您的本地项目被设置为指向Tomcat,而您的远程存储库假定有一个JavaEE服务器,则可能会出现这种情况。有关Tomcat和JBoss之间的区别,请参阅here。
编辑:我将我的项目更改为指向GlassFish,而不是Tomcat,并且javax.persistence.*解决得很好,没有任何显式的JPA依赖。
https://stackoverflow.com/questions/15598210
复制相似问题