在控制器的条件内调用 namedQuery

Posted

技术标签:

【中文标题】在控制器的条件内调用 namedQuery【英文标题】:Call namedQuery inside a criteria in controller 【发布时间】:2011-04-17 21:26:29 【问题描述】:

是否可以在控制器内的 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】:

这是一个例子:

域:

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

【讨论】:

以上是关于在控制器的条件内调用 namedQuery的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有控制器调用的情况下在项目内的任何地方调用模型方法?

在控制器内的http调用之后加载部分文件

尝试在组件内调用控制器方法时出现 Laravel 错误

如何在nodejs的控制器内调用multer中间件?

导航控制器内的表格视图中未调用 textFieldDidEndEditing

来自标准查询的休眠 NamedQuery --> 需要帮助