jpa命名查询:列表的命名绑定变量

时间:2012-12-26 13:48:45

标签: java sql jpa

如果你有一个带有如下列表的命名查询:

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

是否可以将列表设置为命名绑定变量,以便您设置所需的内容:

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

欢迎任何建议

2 个答案:

答案 0 :(得分:11)

是的,这是可能的。就像任何其他参数一样:

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

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

答案 1 :(得分: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);