【问题标题】:Hibernate Filter is not applied in Grails Service/Jobs休眠过滤器未在 Grails 服务/作业中应用
【发布时间】:2012-12-30 09:22:58
【问题描述】:

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

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

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

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

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

【问题讨论】:

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

标签: hibernate grails grails-orm


【解决方案1】:

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

改为使用plugin documentation 中描述的方法之一,例如

UserMapping.withHibernateFilters {
   ..code to execute
}

【讨论】:

  • 伯特,你已经是冠军了。感谢您已经回答了我的两个问题!
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2011-10-15
    • 2011-09-11
    相关资源
    最近更新 更多