我刚刚切换到最新版本的 Spring Boot 3.1.4,然后开始使用
JpaRepository
时遇到这个问题。
我收到此错误,提示无法访问org.springframework.data.repository.ListCrudRepositor
。
我不知道如何解决它,我不想返回并继续使用之前使用的版本 2.7.8,因为我只是在使用这个新版本时才遇到此问题。
这是我的代码
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class UserModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String email;
private String profileImage;
private String accessToken;
private String phone;
}
@Repository
public interface UserRepository extends JpaRepository<UserModel,Integer> {
}
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.elijahukeme.onlinelearningappbackend</groupId>
<artifactId>Online-Learning-App-Backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Online-Learning-App-Backend</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
如果错误确实是在抱怨
org.springframework.data.repository.ListCrudRepositor
,那么你在代码中的某个地方有拼写错误。
没有这样的类。
只有org.springframework.data.repository.ListCrudRepository
。
如果异常抱怨
org.springframework.data.repository.ListCrudRepository
,那么你的依赖项就搞砸了。
您的类路径上可能还有旧版本的 Spring Data Commons,但它还没有该类。 但你的 pom 文件看起来不错,所以我怀疑你在 IDE 中看到了这个,并且它没有完全更新它的依赖项。 因此,将 Maven 项目重新加载到 IDE 将是我的第一次尝试。
如果这不能解决问题,我将从以下开始:
spring-data-commons
,您需要找到原因。 mvn dependency:tree
应该对此有所帮助。请参阅如何获取工件的依赖关系树?了解更多信息。