java - javax.persistence.EntityManager 类型不可访问
问题描述
我在 Eclipse 上的 maven 项目突然产生了上述错误,即使该项目在错误弹出之前已经成功运行。所有必需的依赖项都已添加到 pom.xml 文件中,项目运行正常,但出现此错误,我不知道是什么原因造成的。我试图删除并添加依赖项,但错误仍然存在。这种相同类型的错误让我安装了新的 Eclipse IDE(面向 Java 开发人员的 Eclipse IDE 2021-06)并小心地将文件传输到新的 IDE。该项目在新的 IDE 中运行良好几天,然后突然再次产生相同的错误。请问发生了什么,我该如何解决这个问题?您的指南将不胜感激。下面是我的 Maven 依赖项的屏幕截图:
我的 pom.xml 文件中的依赖项如下:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>15.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>15.0.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.7.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.5.7.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api -->
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.2.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>9.0.10</version>
</dependency>
</dependencies>
解决方案
经过几次尝试,我已经能够解决问题。我通过删除 pom.xml 文件中的依赖项条目从 Maven 依赖项中删除了 javax.persistence-api-2.2 jar。我决定这样做是因为我发现 hibernate-jpa-2.1-api-1.0.2.Final.jar 也有 javax.persistence 包,其中包含持久性操作所需的所有类。我立即刷新我的项目,javax.persistence-api-2.2 jar 被删除并且错误消失了。我认为在我的声明中使用哪个 javax.persistence 可能存在冲突:javax.persistence-api-2.2 jar 或 hibernate-jpa-2.1-api-1.0.2.Final.jar 中的那个。也许它引用了不适用的前者-但是,我不太确定这个原因,但是当我删除 javax.persistence-api-2.2 jar 时它起作用了。
推荐阅读
- javascript - 如何确保 chrome 扩展不仅仅适用于本地 HTML 文件
- javascript - 如何调用 WKWebView 的 evaluateJavaScript 方法
- python-3.x - 在姜戈中。如何在同一个 HTML 页面中使用按钮更新字段?
- python - 使用 nix 正确设置全局 python 环境
- google-sheets - 查询未检测到更远的输入,然后是列 AH
- python - 在字典循环中枚举需要很长时间如何提高速度
- inheritance - Kotlin 域类转换为子类
- javascript - 如何使用本地存储记住输入值?
- driver - 可以在空手道司机上传/下载文件吗?
- python - 如何更改图像尺寸的顺序