Étant donné la requête HQL suivante:
FROM
Foo
WHERE
Id = :id AND
Bar IN (:barList)
J'ai défini :id
À l'aide de la méthode setInteger()
de l'objet Query.
Je voudrais définir :barList
En utilisant un List
d'objets, mais en regardant la documentation Hibernate et la liste des méthodes, je ne vois pas de choix évident à utiliser. Des idées?
Utilisez Query.setParameterList()
, Javadoc ici .
Vous avez le choix entre quatre variantes.
Je ne suis pas sûr de HQL, mais dans JPA, vous appelez simplement le setParameter
de la requête avec le paramètre et la collection.
Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);
où names
est la collection de noms que vous recherchez
Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");
Dans TorpedoQuery cela ressemble à ceci
Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);