我刚刚开始使用 Spring Boot ,目前正在跟踪this tutorial对命名和使用自己版本的 {进行一些小修改{1}} ,内置this generator。
当我找到第一段代码时,我会尝试复制 import 语句开头,
Eclipse
使用javax导入时出现以下错误:
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import java.util.HashSet;
import java.util.Set;
当我找到 The import javax.persistence.[insert name here] cannot be resolved
包时,我发现,确实,他们自己的服务提供的入门代码不包含列出的包。我很困惑,想知道我是否在最初的步骤中做错了什么。有人有什么想法吗?
编辑1:提供的pom内容
javax.persistence
答案 0 :(得分:9)
添加 spring-boot-starter-data-jpa
依赖
如果您使用 Maven
添加到 pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
如果您使用 Gradle
添加 build.gradle
compile "org.springframework.boot:spring-boot-starter-data-jpa"
其他参考this。
答案 1 :(得分:1)
就我而言,我已在spring boot数据依赖项下添加了内容,但仍然无法导入javax.persistence.*
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
我意识到eclipse无法以某种方式将此依赖项添加到我的类路径中。首先,我尝试右键单击项目Maven>Update Project
,但仍然无法正常工作。然后,我在根目录中执行mvn eclipse:eclipse
,然后在成功构建之后刷新Eclipse中的项目。这次它起作用了。
答案 2 :(得分:1)
请参考文档。 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes
从 #19550 开始,Web 和 WebFlux 启动器默认不再依赖于验证启动器。如果您的应用程序正在使用验证功能,例如您发现 javax.validation.* 导入未得到解析,则您需要自己添加启动器。
对于 Maven 构建,您可以执行以下操作:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
对于 Gradle,您需要添加如下内容:
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-validation'
}
答案 3 :(得分:0)
在您的pom.xml文件中添加此依赖项
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
之后,右键单击您的项目,然后在maven选项中更新您的项目。那应该解决它。
答案 4 :(得分:0)
我遇到了同样的问题,但以前的解决方案对我不起作用。我确实通过向 POM 文件添加以下依赖项来解决该问题。
NULL