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

3
我正在尝试根据Spring指南:使用REST访问MongoDB数据创建自定义查询,参考参考4.4自定义实现。但是我的自定义方法无法从存储库的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个回答

1
这是有意为之的。一旦您开始手动实现存储库方法,我们就无法确定GET还是POST是正确的HTTP方法,因为执行是否幂等取决于您如何实现它。
因此,最好的方法是实现自定义控制器并使用适当的HTTP方法公开这些方法。尽管如此,在我们的跟踪器中有一个ticket提供了定义这些方法应如何公开的方式。

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