可以在 Controller 内部的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)
    }

最佳答案

这是一个例子:

域:

class User {

    int age
    String userName

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

    static constraints = {
    }
}

Controller :
class TestController {

    def index = {

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

        render users as JSON
    }
}

另外,您可以在这里找到更多有关此的信息:Reference Documentation

07-24 15:13