Hibernate的HQL查询:如何将一个集合设置为查询的命名参数?
鉴于以下HQL查询:
FROM Foo WHERE Id = :id AND Bar IN (:barList)
我使用Query对象的setInteger()
方法设置:id
。
我想设置:barList
使用对象List
,但看着Hibernate的文档和方法列表我看不到明显的select使用。 有任何想法吗?
在这里使用Query.setParameterList()
, Javadoc 。
有四种变体可供select。
我不确定HQL,但在JPA中,您只需使用参数和集合调用查询的setParameter
。
Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)"); q.setParameter("names", names);
其中names
是您正在search的名称的集合
Collection<String> names = new ArrayList<String(); names.add("Joe"); names.add("Jane"); names.add("Bob");
在TorpedoQuery它看起来像这样
Entity from = from(Entity.class); where(from.getCode()).in("Joe", "Bob"); Query<Entity> select = select(from);