【问题标题】:Spring Boot - javax Import statements not working correctlySpring Boot - javax Import 语句无法正常工作
【发布时间】:2016-09-16 14:21:03
【问题描述】:

我刚开始使用 Spring Boot,目前正在关注 this tutorial,对命名和使用他们自己的 Eclipse 版本进行了一些小的修改,内置this generator

当我到达代码的第一个 sn-p 时,我尝试只复制 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包时,我发现,果然,他们自己的服务提供的starter code不包含列出的包。我很困惑,想知道我在最初的步骤中是否做错了什么。有人有什么想法吗?

编辑 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>

【问题讨论】:

  • 请pom内容
  • @AmanTuladhar Pom 内容已添加
  • 你通过maven下载了jar依赖吗?
  • 你添加spring-boot-starter-data-jpa依赖了吗

标签: java eclipse spring spring-mvc javax.persistence


【解决方案1】:

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

【讨论】:

  • 这似乎奏效了,谢谢。奇怪的是它在开始时没有包含该依赖项。
  • 依赖版本呢?
  • @carduque 来不及回复,但您需要像这样添加它的依赖项:实现组:'org.hibernate',名称:'hibernate-gradle-plugin',版本:'6.0.0。 Alpha6',分机:'pom'
【解决方案2】:

请参考文档。 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】:

    在我的情况下,我在 spring boot 数据依赖项下添加了但仍然无法导入 javax.persistence.*

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    

    我意识到 eclipse 不知何故无法将此依赖项添加到我的类路径中。首先我尝试右键单击项目Maven&gt;Update Project但仍然没有工作。然后我在根目录中执行mvn eclipse:eclipse,然后在成功构建后我在eclipse中刷新了项目。这次成功了。

    【讨论】:

      【解决方案4】:

      在你的 pom.xml 中添加这个依赖

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

      之后右键单击您的项目并在 maven 选项中更新您的项目。那应该可以解决它。

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题,但以前的解决方案对我不起作用。我确实通过向 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>
        

        【讨论】:

          猜你喜欢
          • 2021-11-02
          • 2020-02-09
          • 2019-01-23
          • 1970-01-01
          • 2021-11-10
          • 2018-09-23
          • 2016-03-05
          • 1970-01-01
          • 2015-04-20
          相关资源
          最近更新 更多