[英]Spring Boot - javax Import statements not working correctly
我剛開始使用Spring Boot ,目前正在關注本教程,對命名和使用他們自己的Eclipse
版本進行了一些小的修改,該版本內置了這個生成器。
當我到達第一段代碼時,我嘗試復制導入語句以開始,
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"
其他參考這個。
請參考文檔。 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 數據依賴項下添加了但仍然無法導入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.xml 中添加此依賴項
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
之后右鍵單擊您的項目並在 Maven 選項中更新您的項目。 那應該解決它。
我有同樣的問題,但以前的解決方案對我不起作用。 我確實通過向 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>
也許這會對某人有所幫助:顯然 Java 持久性 API 已重命名為 Jakarta 持久性。 所以你必須導入 Jakarta persistence 而不是 javax.persistence。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.