Search code examples
grailshqlgrails-orm

How to express "where value is in dynamic list" in HQL/GORM?


For a grails application, I need to find a list of objects whose "attr" is one in a dynamic list of strings. The actual HQL query is more complex, but the bit I need help with is this:

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

This is obviously not the right syntax, Grails throws it back at me as an "unexpected token", being the :list parameter.

Is this possible in HQL? I don't particularly want to use Criteria in this part of the codebase.


Solution

  • Put :list in parens:

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