web-dev-qa-db-fra.com

passer la liste à la clause IN dans HQL ou SQL?

Je reçois List<Strings> en exécutant une requête. Cela doit être passé à une autre requête de DANS valeurs de clause. Comment les passer HQL ?

Nous pouvons convertir List en Array et le transmettre, ce n'est pas un problème.

Enfin, je dois passer la liste en List<String> ou Array ou String sous la forme DANS .

38
Mr.Chowdary
from AUTOS a where a.model in (select m.model from MODELS m) 

ou

Query query1 = session.createQuery("select s.id from Salary s where s.salary < 50000 AND s.salary > 49980");
Query query2 = session.createQuery("from Employee e where e.id in (:ids)").setParameterList("ids", query1.list());
query2.list();
75
Sergii Shevchyk

Je sais que cela fait un moment et que vous avez essayé de transmettre la valeur d'une autre requête en tant que paramètre de requête, vous pouvez également passer l'ensemble ou les collections à la clause in dans HQL avec ' elements () '- voici un exemple simple d'une telle utilisation: Requête Hibernate: un Set contient-il un certain Objet?

3
Sinan Kucukkoseler