我有一个域类:
class Owner {
Integer ownerType
Prop propertyToJoinSometimes
static constraints = {
propertyToJoinSometimes nullable: true
}
}
我通常不想在加载Owner时加载propertyToJoinSometimes,但我有时使用findAllBy加载很多Owner对象,并且join可以保存对数据库的大量调用。有没有办法做类似的事情:
Owner.findAllByOwnerType(2, [propertyToJoinSometimes: [fetch: 'join']])
答案 0 :(得分:0)
这不是您正在寻找的(不使用动态查找器findAllBy
),但它会产生您所追求的结果。 createCriteria / withCriteria的grails文档没有提到它,但HibernateCriteriaBuilder中有fetchMode
方法。
import org.hibernate.FetchMode
Owner.withCriteria {
eq('ownerType', 2)
fetchMode('propertyToJoinSometimes', FetchMode.JOIN)
}
答案 1 :(得分:0)
只需使用动态查找器添加选项:
Owner.findAllByOwnerType(2, [fetch: ['propertyToJoinSometimes': 'eager']])