我有一个域类:

class Owner {
    Integer ownerType
    Prop propertyToJoinSometimes

    static constraints = {
        propertyToJoinSometimes nullable: true
    }
}

我通常不希望在加载Owner时加载propertyToJoinSometimes,但是有时我会使用findAllBy一次加载许多Owner对象,并且联接可以保存对数据库的大量调用。有没有办法做类似的事情:
Owner.findAllByOwnerType(2, [propertyToJoinSometimes: [fetch: 'join']])

最佳答案

这不是您要查找的内容(不使用动态查找器findAllBy),但是它会产生您想要的结果。 createCriteria / withCriteria的grails文档没有提及它,但是HibernateCriteriaBuilder中有一个fetchMode方法。

import org.hibernate.FetchMode

Owner.withCriteria {
    eq('ownerType', 2)
    fetchMode('propertyToJoinSometimes', FetchMode.JOIN)
}

关于grails - Grails 3-使用join的findAllBy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39668336/

10-12 23:55