我正在尝试根据Spring guide : Accessing MongoDB Data with REST从Reference 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);
}
答案 0 :(得分:1)
这是设计的。一旦您开始手动实现存储库方法,我们就无法知道GET
或POST
是否是正确的HTTP方法,因为执行是否是幂等的,取决于您如何实现它。
所以要走的路是实现自定义控制器并使用适当的HTTP方法公开这些方法。也就是说,我们的跟踪器中有一个ticket来提供定义这些方法的方式的方法。