【问题标题】:Spring Data REST : custom query for MongoDB repositorySpring Data REST:MongoDB 存储库的自定义查询
【发布时间】:2014-04-21 12:12:29
【问题描述】:

我正在尝试根据Reference 4.4 Custom ImplementationsSpring guide : Accessing MongoDB Data with REST 创建自定义查询。但是我的自定义方法在存储库的 REST 接口 (/user/search) 中不可用。

(例如,浏览器无法找到 localhost:8080/user/search/GetByKidsAge?age=1)

有人可以帮我解决这个问题并给我一些建议吗? 非常感谢!!

下面是我的代码:

UserRepositoryCustom.java

public interface UserRepositoryCustom {     

    public List<User> GetByKidsAge(@Param("age") int age);
}

UserRepositoryImpl.java

public class UserRepositoryImpl implements UserRepositoryCustom {

    @Override
    public List<User> GetByKidsAge(int age) {

        return /*perform query*/;

    }
}

UserRepository.java

@RepositoryRestResource(collectionResourceRel = "user", path = "user")
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {

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

【问题讨论】:

    标签: java spring mongodb rest spring-data


    【解决方案1】:

    这是设计使然。一旦您开始手动实现存储库方法,我们就无法知道 GETPOST 是否是正确的 HTTP 方法,因为执行是否幂等取决于您如何实现它。

    因此,要实现的方法是实现自定义控制器并使用适当的 HTTP 方法公开这些方法。也就是说,我们的跟踪器中有一个 ticket 来提供定义这些方法的公开方式的方法。

    【讨论】:

      猜你喜欢
      • 2016-08-29
      • 1970-01-01
      • 2018-10-06
      • 2017-09-19
      • 2017-11-15
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多