Hibernate HQL Query:如何将Collection设置为Query的命名参数?

kar*_*grz 65 java hibernate hql

给出以下HQL查询:

FROM
    Foo
WHERE
    Id = :id AND
    Bar IN (:barList)
Run Code Online (Sandbox Code Playgroud)

:id使用Query对象的setInteger()方法设置.

我想设置:barList一个List对象,但看看Hibernate文档和方法列表,我看不出明显的选择使用哪个.有任何想法吗?

Jas*_*hen 92

使用Query.setParameterList(),的Javadoc在这里.

有四种变体可供选择.

  • D:哦,不,断链(......痛苦地说是JBoss的典型文档) (2认同)
  • 这只适用于使用hibernate Query对象,但如果导入`javax.persistence.Query`则不起作用.只是我的两分钱. (2认同)

Ste*_*Kuo 31

我不确定HQL,但在JPA中,您只需setParameter使用参数和集合调用查询.

Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);
Run Code Online (Sandbox Code Playgroud)

names您正在搜索的名称集合在哪里

Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");
Run Code Online (Sandbox Code Playgroud)