2010-11-14 9 views
13


मैं एक संरचना लोड लोड करना चाहता हूं, एक एसोसिएशन श्रृंखला में दो स्तर गहरे। कुछ के साथ कुछ:के साथ दो स्तर गहरे सहयोगी उत्सुक fetch grails

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 

किसी भी मदद की सराहना!
- स्टीव

उत्तर

21

यह काम कर रहा है। यहां गुप्त सॉस है:

def result = TopLevel.withCriteria { 
    eq('name', 'test') 
    fetchMode 'levelOne', FetchMode.JOIN 
    fetchMode 'levelOne.levelTwo', FetchMode.JOIN 
    fetchMode 'levelOne.levelTwo.levelThree', FetchMode.JOIN 
} 
संबंधित मुद्दे