2012-09-29 11 views
32

Bir sorguyu yürüterek List<Strings> alırım. Bu başka bir IN yan tümce değerlerine geçirilmelidir. HQL'da nasıl iletilir?listesi HQL veya SQL'de IN yan tümcesine geçiriliyor?

List dosyasını Array dönüştürebilir ve iletebiliriz, bu bir sorun değil.

Son olarak, maddesi İÇİNDE için List<String> veya Array veya String şeklinde listeyi geçmelidir.

cevap

66
from AUTOS a where a.model in (select m.model from MODELS m) 

veya

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(); 
+0

Bu, aynı zamanda bileşik kimliklerle de çalışır mı? – rexdefuror

+2

Bu iyi bir cevaptır, ancak boş bir koleksiyon için çalışmaz. – Jagger

+0

1 sorgu ile yapmak mümkün mü? alt sorgularla sql’de olduğu gibi mi? – tObi

3

Ben bir süre oldu biliyorum ve bir QueryParameter gibi farklı bir sorgunun değerini geçmesi çalışıyorlar, ayrıca ayarlamak veya koleksiyonları için fıkrada HQL içinde geçirebiliriz 'elements()' ile - işte bu gibi basit bir kullanım örneği: Hibernate query: does a Set contains a certain Object?

+0

Bu aynısını yapacak .. Cevabınız için teşekkürler bile geç kaldı .. başkalarına faydalı .. –