Spring 引导 - javax 导入语句无法正常工作
Spring Boot - javax Import statements not working correctly
我刚开始使用 Spring Boot,目前正在关注内置的 this tutorial with some small modifications to naming and using their own version of Eclipse
, which has this generator。
当我到达第一段代码时,我尝试只复制 import 语句开始,
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;
这让我在 javax 导入时出现以下错误:
The import javax.persistence.[insert name here] cannot be resolved
当我找到 javax.persistence
包时,我发现,果然,他们自己的服务提供的起始代码不包含列出的包。我很困惑,想知道我是否在最初的步骤中做错了什么。有人有什么想法吗?
编辑 1:提供的 pom 内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Me</groupId>
<artifactId>petstore</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>petstore</name>
<description>Petstore Project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加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.
在你里面添加这个依赖pom.xml
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
之后右键单击您的项目并在 Maven 选项中更新您的项目。这应该可以解决它。
在我的例子中,我在下面添加了 spring 引导数据依赖项,但仍然无法导入 javax.persistence.*
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
我意识到 eclipse 无法将此依赖项添加到我的类路径中。首先,我尝试右键单击项目 Maven>Update Project
,但仍然无效。然后我在根目录中执行 mvn eclipse:eclipse
,然后在成功构建后我在 eclipse 中刷新了项目。这次成功了。
我遇到了同样的问题,但以前的解决方案对我不起作用。我确实通过向 POM 文件添加以下依赖项来解决问题。
<!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
请参考文档。
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'
}
我刚开始使用 Spring Boot,目前正在关注内置的 this tutorial with some small modifications to naming and using their own version of Eclipse
, which has this generator。
当我到达第一段代码时,我尝试只复制 import 语句开始,
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;
这让我在 javax 导入时出现以下错误:
The import javax.persistence.[insert name here] cannot be resolved
当我找到 javax.persistence
包时,我发现,果然,他们自己的服务提供的起始代码不包含列出的包。我很困惑,想知道我是否在最初的步骤中做错了什么。有人有什么想法吗?
编辑 1:提供的 pom 内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Me</groupId>
<artifactId>petstore</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>petstore</name>
<description>Petstore Project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加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.
在你里面添加这个依赖pom.xml
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
之后右键单击您的项目并在 Maven 选项中更新您的项目。这应该可以解决它。
在我的例子中,我在下面添加了 spring 引导数据依赖项,但仍然无法导入 javax.persistence.*
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
我意识到 eclipse 无法将此依赖项添加到我的类路径中。首先,我尝试右键单击项目 Maven>Update Project
,但仍然无效。然后我在根目录中执行 mvn eclipse:eclipse
,然后在成功构建后我在 eclipse 中刷新了项目。这次成功了。
我遇到了同样的问题,但以前的解决方案对我不起作用。我确实通过向 POM 文件添加以下依赖项来解决问题。
<!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
请参考文档。 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'
}