pma*_*ais 17 jpa intellij-idea maven
我正在 IntelliJ 中使用 spring-data-jpa 启动一个项目,但无法加载 javax.persistence (“包 javax.persistence 不存在”)。
我已经花了四个小时来解决这个看似非常简单的问题。我使用标准 IntelliJ UI 创建项目并选择 spring 框架和 spring-data-jpa 选项。
我唯一的代码是:
import javax.persistence.entity;
@entity
public class customer {
}
Run Code Online (Sandbox Code Playgroud)
项目无法构建,IDE 中的工具提示显示“无法解析符号持久性”我缺少什么?
在 java 11(2018 年发布)中,java EE 库从内置核心移至可选依赖项(请参阅http://openjdk.java.net/jeps/320)。所以你可能需要添加:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(hibernate-entitymanager将此作为依赖项,因此这可能就是添加它解决问题的原因 - 请参阅https://repo1.maven.org/maven2/org/hibernate/hibernate-entitymanager/5.6.15.Final/hibernate-entitymanager- 5.6.15.Final.pom )
另相关:2017 年,Java EE 转移到 Eclipse 并更名为 Jakarta EE(Oracle 拥有“Java”这个名称)。
最新的进口现在位于“jakarta”下:例如import jakarta.persistence.EntityManager;。
Hibernate 5 仍然使用 JPA 2.2 (javax),但 Hibernate 6 使用 JPA 3.0 (jakarta)。确保您的mvn dependency:tree.
小智 5
三件事:
首先,您输入的“Entity”错误。Java 类区分大小写,因此应该是@Entity。
其次,javax.persistence并不总是与核心JDK一起打包,因此您需要下载它。您可以在这里获取它: https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api/2.2
最后,您的目录结构可能会导致一些问题。我建议将其更改为
src(目录)
-> 主目录(目录)
-> -> java(目录)
-> -> -> 驱动程序(文件)
-> -> -> Data.xml(文件)
-> -> -> 客户(文件)
| 归档时间: |
|
| 查看次数: |
67699 次 |
| 最近记录: |