2012-12-26 74 views
7

命名綁定變量,如果你有像列表的namedquery:JPA命名查詢:對名單

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

是有可能使該列表命名綁定變量,所以你設置你想要什麼:

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

任何建議將受到歡迎

回答

11

是的,這是可能的。只要做到這一點像任何其他參數:

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

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

括號?其他答案包括他們 - 發現一些細節在[這個答案](http://stackoverflow.com/a/21341663/1146608) –

2

用這種方式不需要

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


namesCollection // conatains your Lsit of names 

query.setParameterList('availableCollection', namesCollection);