2012-12-26 24 views
7

adını bağlama değişkenleri gibi listesini içeren bir namedquery varsa:JPA adlı sorgu: Listedeki

@NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN ('Jack', 'Jill')") 

Eğer ne istedikleri belirlenen bu ismi bağlama değişkenlere listesini yapmak mümkündür:

q.setParameter(....... ); 

herhangi bir öneriniz

cevap

11

Evet, bu mümkün hoş olurdu. Tıpkı diğer parametre için gibi yapmak:

@NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN :names") 

q.setParameter("names", Arrays.asList("Jack", "Jill")); 
+0

Parantez gerekli değildir bu şekilde? Diğer cevap onları içerir - [bu cevap] 'da bazı detayları buldum (http://stackoverflow.com/a/21341663/1146608) –

2

Kullanım

@NamedQuery(name="selection" , query=" SELECT x FROM Employee x WHERE x.name IN (:availableCollection)") 


namesCollection // conatains your Lsit of names 

query.setParameterList('availableCollection', namesCollection);