无法导入Spring RepositoryRestResource

11

我正在尝试通过Spring实现基于REST的MongoDB服务,但遇到了一些问题。我无法导入某个特定的库。

我的类中有这个内容:

package main;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends MongoRepository<Person, String> {

    List<Person> findByLastName(@Param("name") String name);

}

但是由于某些原因,import org.springframework.data.rest.core.annotation.RepositoryRestResource;无法正常工作,并给我返回了错误:The import org.springframework.data.rest cannot be resolved

这是我的maven pom.xml:

<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>UserRegistrationServices</groupId>
    <artifactId>UserRegistrationServices</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- Get the dependencies of a web application -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>

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

    <build>
        <plugins>
            <!-- Spring Boot Maven Support -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

另外,我正在直接遵循这个指南:http://spring.io/guides/gs/accessing-mongodb-data-rest/

请问如何解决这个问题?谢谢。


你在用什么集成开发环境(IDE)? - wggn
4个回答

17

编辑你的pom.xml文件...并在<dependencies></dependencies>标签内添加以下内容...

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
        <version>1.2.5.RELEASE</version>
</dependency>

1
现在它不是2.1.8,而是2.1.0<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> <version>2.1.0.RELEASE</version> </dependency> - Sasha Bond

0

我在1.3.6.RELEASE上遇到了同样的问题。

它说:

org.springframework.data.rest.core.annotation.RepositoryRestResource无法解析为类型

所以我将spring-boot的版本设置为1.2.8.RELEAS,现在问题已经解决了。

我的当前spring-boot的pom.xml如下。

....

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.8.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

....

0

我曾经遇到过这个错误信息的同样问题。在我的情况下,是IDE(Intellij)中的刷新问题导致的。 删除带有注释(@RepositoryRestResource)的行并重新插入它可以很好地解决问题。


0

我也曾尝试从https://spring.io/guides/gs/accessing-mongodb-data-rest/中遵循相同的步骤。 对我来说,当我添加了https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-rest/2.3.0.RELEASE版本后,这个问题得到了解决。 更加精确和清晰地说,我在pom.xml文件中添加了这个版本以解决这个问题。也许如果你添加这个版本,它就会开始工作!

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-rest -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
    <version>2.3.0.RELEASE</version>
</dependency>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接