代码之家  ›  专栏  ›  技术社区  ›  Steve Wall

带条件的两级深度关联急切获取grails

  •  13
  • Steve Wall  · 技术社区  · 15 年前


    我希望加载一个结构,在一个关联链的两个层次。大致如下:

    class TopLevel {
        String name
    
        LevelOne levelOne
    }    
    
    class LevelOne {
        String name
    
        LevelTwo levelTwo
    }
    
    class LevelTwo {
        String name
    }
    

    我想装整个结构。我四处寻找,找到了这个例子,但没有成功。“println”生成了对LevelTwo表的查询。

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

    感谢您的帮助!
    -史蒂夫

    1 回复  |  直到 15 年前
        1
  •  22
  •   Steve Wall    15 年前

    开始工作了。这是秘方:

    def result = TopLevel.withCriteria {
        eq('name', 'test')
        fetchMode 'levelOne', FetchMode.JOIN
        fetchMode 'levelOne.levelTwo', FetchMode.JOIN
        fetchMode 'levelOne.levelTwo.levelThree', FetchMode.JOIN
    }
    
    推荐文章