在控制器中的条件内调用namedQuery

时间:2011-04-17 21:26:29

标签: grails criteria named-query

可以在控制器内的grails上调用namedQuery吗?我知道我可以在另一个namedQuery中调用namedQuery,但我不想这样做。有任何想法吗?感谢

用户 .groovy作为

static namedQueries = {
      filterUsers{
            eq("age", 21)
      }
}

myController的 .groovy作为

def r = User.createCriteria().list {
     eq("id", 1)
     filterUsers() //not possible
}

或..

myController的 .groovy作为

    //not possible too
    //Cannot invoke method createCriteria() on null object

    def r = User.filterUsers().createCriteria().list {
         eq("id", 1)           
    }

1 个答案:

答案 0 :(得分:4)

以下是一个例子:

<强>域

class User {

    int age
    String userName

    static namedQueries = {
        filterUsers {
            eq("age", 21)
        }
    }

    static constraints = {
    }
}

<强>控制器:

class TestController {

    def index = {

        def users = User.filterUsers {
            and {
                like 'userName', 'Derek%'
            }
        }

        render users as JSON
    }
}

此外,您可以在此处找到有关此内容的更多信息:Reference Documentation