2011-04-17 12 views
4

可以在控制器的grails上調用namedQuery嗎?我知道我可以在另一個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)   
    } 

回答

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

相關問題