withCriteria两级深层联想渴望获取grails

pts*_*tsw 14 grails grails-orm


我想在一个关联链中加载一个结构,两个层次.有点像:

class TopLevel {
    String name

    LevelOne levelOne
}    

class LevelOne {
    String name

    LevelTwo levelTwo
}

class LevelTwo {
    String name
}
Run Code Online (Sandbox Code Playgroud)

我想加载整个结构.搜索我发现这个例子,但它没有用."println"生成了对LevelTwo表的查询.

def result = TopLevel.withCriteria {
    eq('name', 'test')
    fetchMode "levelOne", FetchMode.JOIN
    levelOne {
        fetchMode "levelTwo", FetchMode.JOIN
    }
}

println result.levelOne.levelTwo.name
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助!
- 史蒂夫

pts*_*tsw 22

搞定了.这是秘密酱:

def result = TopLevel.withCriteria {
    eq('name', 'test')
    fetchMode 'levelOne', FetchMode.JOIN
    fetchMode 'levelOne.levelTwo', FetchMode.JOIN
    fetchMode 'levelOne.levelTwo.levelThree', FetchMode.JOIN
}
Run Code Online (Sandbox Code Playgroud)