liste de passage à la clause dans HQL ou SQL?

je reçois List<Strings> par l'exécution d'une requête. Ceci doit être passé à une autre requête de dans les valeurs de clause . Comment les passer dans HQL ?

nous pouvons convertir List en Array et peut passer, ce n'est pas un problème.

enfin, je dois passer la liste dans List<String> ou Array ou String formulaire à dans clause.

35
demandé sur Luiggi Mendoza 2012-09-29 17:05:17

2 réponses

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();
72
répondu Sergii Shevchyk 2012-10-01 06:49:41

je sais que cela fait longtemps et que vous avez essayé de passer la valeur d'une requête différente en tant que queryparamètre, vous pouvez aussi passer l'ensemble ou les collections à la clause dans HQL avec ' elements () ' - voici un exemple simple d'une telle utilisation: hibernation requête: est-ce qu'un ensemble contient un certain objet?

3
répondu Sinan Kucukkoseler 2017-05-23 12:26:24