2014-04-21 5 views
3

J'essaie de créer une requête personnalisée à partir du Spring guide : Accessing MongoDB Data with REST en fonction du Reference 4.4 Custom Implementations. Mais ma méthode personnalisée n'est pas disponible depuis l'interface REST du référentiel (/ user/search).Spring Data REST: requête personnalisée pour le référentiel MongoDB

(par exemple le navigateur ne peut pas trouver localhost: 8080/user/search/GetByKidsAge age = 1)

Quelqu'un pourrait-il me aider à cela et figurées me donner quelques suggestions? Merci beaucoup!

Ci-dessous mon code:

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); 
} 

Répondre

1

Ceci est voulu. Dès que vous commencez à implémenter une méthode de référentiel manuellement, nous ne pouvons pas savoir si GET ou POST est la bonne méthode HTTP comme si l'exécution est idempotente dépend de la façon dont vous l'implémentez. Donc, le chemin à parcourir serait de mettre en œuvre un contrôleur personnalisé et d'exposer ces méthodes en utilisant la méthode HTTP adéquate. Cela dit, il ya un ticket dans notre tracker pour fournir des moyens de définir la façon dont ces méthodes devraient être exposées aussi bien.

Questions connexes