La gestion simultanée de plusieurs valeurs pour une seule requête de paramètre dans une url du webservice et de la manipulation de l'utilisation d'hibernate critères

J'ai un service web rest qui accepterait " nom " et de récupérer les jetons de la db avec ce nom et retourner les jetons de retour.
L'url pour le reste webservice serait:

http://localhost:8080/NameService/Tokens?name=Bob

et dans le serviceLayer, j'ai ma méthode comme suit:

@GET
@Path("Tokens")
@Produces("application/xml")
public JAXBElement<GetToken> getokenByName(@QueryParam("name") final String name ) {

    if(name!=null){
        //use hibernate criteria to fetch the records from db
        Criteria crit = getSession().createCriteria(getPersistentClass());
        crit.add(Restrictions.eq("name",name))
    }
}

Maintenant, nous avons un changement dans les exigences lorsque le client peut envoyer plusieurs noms dans la demande en même temps.Par exemple, donnez-moi les jetons, où name = "bob" ou "brendon" ou "aaron"
L'URL pourrait être comme ceci:

http://localhost:8080/NameService/Tokens?name=Bob,Aaron,Brendon

Le nombre de noms envoyé est variable. Il peut être de 1 ou 2 ou 3 etc.
Toutes les idées sur la façon de réaliser cette scission et de les transmettre à hibernate critères comme une condition OU dans la couche de service en optimisant le code indiqué ci-dessus, qui travaille pour un nom?

Une des solutions pourrait être d'utiliser StringUtils d'analyser les différents noms à l'aide de séparateur (virgule), puis d'une liste et d'une façon ou d'ajouter les noms dans la liste des critères de restrictions. Mais pas sûr que cela fonctionne.

Des idées?

OriginalL'auteur Npa | 2012-09-13