我的域使用hibernate过滤器,如下所示:
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过滤器
过滤器自动启用的唯一时间是在web请求期间-这是由于插件的HibernateFilterFilters
在每个web请求之前应用所有启用的过滤器。但是没有全局自动过滤逻辑——这将是不切实际的。
请使用插件文档中描述的方法之一,例如
UserMapping.withHibernateFilters {
..code to execute
}
在我的例子中,我发现我忘记了"default: true"标志。: o
我们在BootStrap中也有代码。Groovy,它启用hibernate过滤器:
def init = { servletContext ->
//Hibernate filters
MyDomainObject.enableHibernateFilter('myFilter')
}
(我意识到这个问题已经回答了,但我希望这有助于其他正在寻找的人。)