6
votes

Rest de données de printemps - Paramètres avec des valeurs par défaut

J'ai créé ce qui suit @Repositoryrestresource question où je veux créer une requête dynamique pour mon API de repos. Donc, fondamentalement, je voudrais faire quelque chose comme: xxx

donc j'ai créé la requête ci-dessous: xxx

évidemment certaines de ces personnes ne peuvent pas ont été entrés. Y a-t-il un moyen de définir des valeurs par défaut sur le référentiel? Donc, par exemple, je voudrais nom pour avoir une valeur par défaut de % .

Je ne suis pas tout à fait sûr que cette approche est la bonne pour quoi Je tiens à faire, de sorte que toutes les suggestions alternatives sont les bienvenues.


0 commentaires

3 Réponses :


1
votes

Faites face au même problème, et aussi loin que je puisse faire des recherches, la meilleure façon de résoudre est de faire une requête différente pour chaque ensemble de valeurs.


0 commentaires

2
votes

Donc, une solution possible peut être que vous pourriez accéder au contrôleur et utiliser dans votre @Controller code> / @RestController code> Votre @Requestparam code> avec attributs requis = false code> et defaultvalue = "%" code>.

Un appel correspondant peut ressembler à ceci: p>

@RestController
...
@RequestMapping(value = "[myCallFromFrontend]", method = RequestMethod.GET)
public ResponseItem getItemsByFilters (
    @RequestParam(required = false, defaultValue = "%") String name,
    @RequestParam(required = false, defaultValue = "%") String age,
    @RequestParam(required = false, defaultValue = "%") String address,
    @RequestParam(required = false, defaultValue = "%") String etc,
    HttpServletResponse response){

    ResponseItem item = null;
    try {
         //you might do this in service layer.
         item = myRepository.findByAll(name, age, address, etc);
    } catch (myException mE) {
            log.error("...", mE);
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
        return item;
    }


0 commentaires

8
votes

Je sais que c'est plus âgé, mais j'ai eu un problème similaire et je l'ai résolu comme suit: xxx


1 commentaires

Notez que, avec cette technique, vous ne pouvez pas utiliser de type de données primitive pour les paramètres, utilisez plutôt la contrepartie de leur objet wrapper. E.g.: INTEGER et non int