Spring Data REST:MongoDB存储库的自定义查询

时间:2014-04-21 12:12:30

标签: java spring mongodb rest spring-data

我正在尝试根据Spring guide : Accessing MongoDB Data with RESTReference 4.4 Custom Implementations创建自定义查询。但是我的自定义方法不能从存储库的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);  
}

1 个答案:

答案 0 :(得分:1)

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

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