3

我的域使用如下休眠过滤器:

class UserMapping {
    // Senseless App Logic here
    static hibernateFilters = {
        typeFilter(condition: "type = 'IDENTIFIED'", default: true)
        flagFilter(condition: "flags = 'ACTIVE'", default: true)
    }
}

当我在控制器中使用它们时,它们似乎适用,但是当我在我的服务或工作中执行相同的 findBy.. 时,它们不会被应用。有什么建议么?

如果有什么不同,我会在 mixin 中调用 findBy。

这个问题似乎相关,但它不完全是我正在寻找的: 启用 grails hibernate filters

4

2 回答 2

2

唯一一次自动启用过滤器是在 Web 请求期间 - 这是由于插件HibernateFilterFilters在每个 Web 请求之前应用所有启用的过滤器。但是没有全局自动过滤逻辑——这是不切实际的。

而是使用插件文档中描述的方法之一,例如

UserMapping.withHibernateFilters {
   ..code to execute
}
于 2013-01-16T11:43:41.693 回答
1

就我而言,我发现我忘记了“default:true”标志。:o

我们在 BootStrap.groovy 中也有启用休眠过滤器的代码:

def init = { servletContext ->
    //Hibernate filters
    MyDomainObject.enableHibernateFilter('myFilter')
}

(我意识到这个问题已经得到解答,但我希望这可以帮助其他正在寻找的人。)

于 2014-12-17T16:19:21.133 回答