java - tables - Hibernate HQL Query: ¿cómo establecer una colección como un parámetro nombrado de una consulta?
hql like (3)
En TorpedoQuery se ve así
Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);
Dada la siguiente consulta HQL:
FROM
Foo
WHERE
Id = :id AND
Bar IN (:barList)
Establecí :id
utilizando el método setInteger()
del objeto Query.
Me gustaría establecer :barList
usando una List
de objetos, pero mirando la documentación de Hibernate y la lista de métodos no puedo ver una opción obvia de usar. ¿Algunas ideas?
No estoy seguro acerca de HQL, pero en JPA solo llama a setParameter
la consulta con el parámetro y la colección.
Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);
donde names
es la colección de nombres que estás buscando
Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");
Utilice Query.setParameterList()
, Javadoc aquí .
Hay cuatro variantes para elegir.