Spring MVC Sping Boot - javax导入语句无法正常工作

xytpbqjk  于 2022-11-15  发布在  Spring
关注(0)|答案(6)|浏览(177)

我刚刚开始使用***Sping Boot *,目前正在遵循this tutorial,对命名和使用他们自己的Eclipse**版本进行了一些小修改,该版本内置了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>
wfveoks0

wfveoks01#

添加**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

pepwfjgg

pepwfjgg2#

也许这会对某些人有所帮助:显然,Java持久性API被重命名为Jakarta持久性。因此,您必须导入Jakarta持久性,而不是javax.persistence。

gab6jxml

gab6jxml3#

请参阅文档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'
}
p3rjfoxz

p3rjfoxz4#

在我的例子中,我已经在下面添加了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中刷新了项目。这次,它起作用了。

ia2d9nvy

ia2d9nvy5#

在pom.xml中添加此依赖项

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
    <version>1.0.1.Final</version>
</dependency>

之后右键点击你的项目,在maven选项中更新你的项目。这样应该可以修复它。

dfddblmv

dfddblmv6#

我有同样的问题,但以前的解决方案对我不起作用。我通过添加以下依赖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>

相关问题