65 votes

Hibernate Requête HQL : Comment définir une Collection comme un nom de paramètre d'une Requête?

Compte tenu de la Requête HQL suivante:

FROM
    Foo
WHERE
    Id = :id AND
    Bar IN (:barList)

J'ai mis :id à l'aide de l'objet de Requête de l' setInteger() méthode.

Je voudrais configurer :barList à l'aide d'un List d'objets, mais en regardant la documentation Hibernate et de la liste des méthodes, je ne vois pas un choix évident à utiliser. Des idées?

92voto

Jason Cohen Points 36475

Utiliser Query.setParameterList(), Javadoc ici.

Il existe quatre variantes de choisir à partir.

32voto

Steve Kuo Points 15196

Je ne suis pas sûr HQL, mais en JPA vous suffit d'appeler la requête de l' setParameter avec le paramètre et de collection.

Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);

names de la collecte de noms que vous êtes à la recherche pour

Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");

1voto

xjodoin Points 53

Dans TorpedoQuery ressembler à ceci

Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X