Grails 3 - findAllBy with join

时间:2016-09-23 19:35:56

标签: grails gorm grails-3.1

我有一个域类:

class Owner {
    Integer ownerType
    Prop propertyToJoinSometimes

    static constraints = {
        propertyToJoinSometimes nullable: true
    }
}

我通常不想在加载Owner时加载propertyToJoinSometimes,但我有时使用findAllBy加载很多Owner对象,并且join可以保存对数据库的大量调用。有没有办法做类似的事情:

Owner.findAllByOwnerType(2, [propertyToJoinSometimes: [fetch: 'join']])

2 个答案:

答案 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']])