2010-06-07 4 views
6

Para una aplicación de grails, necesito encontrar una lista de objetos cuyo "attr" es uno en una lista dinámica de cadenas. La consulta real HQL es más complejo, pero el poco que necesito ayuda es la siguiente:Cómo expresar "¿dónde está el valor en la lista dinámica" en HQL/GORM?

def result = MyObject.executeQuery("select o from MyObject as o where o.attr in :list", 
    [list: aListOfStrings]) 

Esto obviamente no es la sintaxis correcta, Grails lo lanza hacia mí como un "símbolo inesperado", siendo el parámetro :list .

Es esto posible en HQL? En particular, no quiero usar Criteria en esta parte de la base de código.

Respuesta

17

palabras: lista de parens:

def result = MyObject.executeQuery(
    "select o from MyObject as o where o.attr in (:list)", 
    [list: aListOfStrings]) 
+0

no puedo utilizar esta idea de (: lista) y [lista: aList] con la clase Sql.java en griales – AnujKu

+2

Burt 4 President! –

2

No estoy seguro de cómo se compara el rendimiento, pero yo era capaz de hacer esto directamente en GORM con la palabra clave in en una consulta where:

def users = MyObject.where { attr in aListOfStrings } 
Cuestiones relacionadas