【问题标题】:Grails/GORM where-clause how to set the fetchMode propertyGrails/GORM where-clause 如何设置 fetchMode 属性
【发布时间】:2012-01-19 17:10:31
【问题描述】:

在 Grails 2 中,我们都知道 where 子句会创建 DetachedCriteria。此外,可以在创建普通 Criteria 查询时设置关系的 fetchMode 属性。但是,如果我正在创建 where 子句查询,我该如何设置底层 Criteria 的 fetchMode 属性?

不起作用:

MyDomainClass.where {
  foo == 'bar'
  fetchMode "reference", FetchMode.EAGER
}

有效,但使用旧的 Criteria 样式,而不是 where 子句:

MyDomainClass.withCriteria {
  eq "foo", "bar"
  fetchMode "reference", FetchMode.EAGER
}

请不要告诉我在域类映射中将获取模式设置为渴望。我知道这一点,并且需要在查询级别控制急切的获取。谢谢!

【问题讨论】:

    标签: grails properties grails-orm where-clause fetch


    【解决方案1】:

    目前尚不支持此功能,因此请在 http://jira.grails.org/browse/GRAILS 创建功能请求

    虽然通过访问执行实际查询的 Hibernate Criteria 实例,有一个有点骇人听闻的解决方法:

    MyDomainClass.where {
       foo == 'bar'
    }.withPopulatedQuery(null, null) { query ->
       query.@criteria.setFetchMode('reference', FetchMode.EAGER)
       query.list()
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多