人们,我正面临着 grails GORM 的问题,我的应用程序完全依赖于DomainClass.list()
方法,它在我的所有创建/编辑GSP中,但现在我需要一个列出对象的特定行为。更具体的我需要通过一个属性过滤这些列表(所有这些)。
问题是我希望不要改变这些方法调用的所有外观,那么有没有办法自定义默认的list()
方法的行为?我需要它以它的方式运行,但添加一个结束过滤器。
答案 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()
。