2009-02-20 6 views

Répondre

89

Utilisez Query.setParameterList(), Javadoc here.

Vous pouvez choisir parmi quatre variantes.

+0

Merci pour avoir signalé! J'ai complètement négligé cela en regardant le JavaDoc. – karlgrz

+2

D: Oh noes, lien brisé (... douloureusement typique des documents JBoss) –

+2

Cela ne fonctionne que si vous utilisez un objet de requête hibernate, mais ne fonctionnera pas si vous importez 'javax.persistence.Query'. Juste mes deux cents. –

30

Je ne suis pas sûr à propos de HQL, mais en JPA, vous appelez simplement 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); 

names est la collection de noms que vous recherchez

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

En TorpedoQuery ressembler à ce

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

Comment cela répond-il à la question? S'il vous plaît ne pas poster des liens vers votre projet si elles ne traitent pas le problème directement. – Mat

+1

Il génère une requête hql avec une condition in – xjodoin

Questions connexes