Grails/GORM where子句如何设置fetchMode属性

Grails/GORM where子句如何设置fetchMode属性,grails,properties,gorm,where-clause,fetch,Grails,Properties,Gorm,Where Clause,Fetch,在Grails2中,我们都知道where子句创建了DetachedCriteria。此外,可以在创建普通条件查询时设置关系的fetchMode属性。但是,如果要创建where子句查询,如何设置基础条件的fetchMode属性 不起作用: MyDomainClass.where { foo == 'bar' fetchMode "reference", FetchMode.EAGER } 有效,但使用旧的标准样式,而不是where子句: MyDomainClass.withCriteri

在Grails2中,我们都知道where子句创建了DetachedCriteria。此外,可以在创建普通条件查询时设置关系的fetchMode属性。但是,如果要创建where子句查询,如何设置基础条件的fetchMode属性

不起作用:

MyDomainClass.where {
  foo == 'bar'
  fetchMode "reference", FetchMode.EAGER
}
有效,但使用旧的标准样式,而不是where子句:

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

请不要告诉我在域类映射中将fetch模式设置为eager。我知道这一点,需要在查询级别控制急切抓取。谢谢

这还不受支持,因此请在

不过,通过访问执行实际查询的Hibernate
Criteria
实例,有一种有点黑客的解决方法:

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

这还不受支持,因此请在以下位置创建功能请求:

不过,通过访问执行实际查询的Hibernate
Criteria
实例,有一种有点黑客的解决方法:

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