如何覆盖GORM中的DomainClass.list()(Grails)

时间:2012-02-24 12:43:42

标签: grails gorm grails-domain-class

人们,我正面临着 grails GORM 的问题,我的应用程序完全依赖于DomainClass.list()方法,它在我的所有创建/编辑GSP中,但现在我需要一个列出对象的特定行为。更具体的我需要通过一个属性过滤这些列表(所有这些)。

问题是我希望不要改变这些方法调用的所有外观,那么有没有办法自定义默认的list()方法的行为?我需要它以它的方式运行,但添加一个结束过滤器。

2 个答案:

答案 0 :(得分:3)

也许您可以使用hibernate过滤器插件(请参阅here)。这将允许您根据属性过滤所有查找器方法(包括list()):

static hibernateFilters = {
    enabledFilter(condition: 'deleted=0', default: true)
}

答案 1 :(得分:0)

您是否考虑过使用names queries?你可以做这样的事情:

class DomainClass {
    // ... class members

    static namedQueries = {
        myList { params->
            // put your complicated logic here
        }
    }
}

然后,您只需将DomainClass.list()的来电替换为DomainClass.myList.list()