2012-05-16 10 views
5

Nel mio progetto Grails, ho le seguenti classi:criteri Grails con fetchMode desiderosi con due livelli

class A { 
    static hasMany = [cs:C] 
} 

class B { 
    static hasMany = [cs:C] 
} 

class C { 
    static belongsTo = [a:A, b:B] 
} 

vorrei interrogare la classe A e portare i tutte le associazioni da B e C con entusiasmo. Ho provato la seguente query di criteri, ma quando eseguo un'iterazione su C da A, hibernate utilizza l'inizializzazione pigra per interrogare gli oggetti B.

A.withCriteria() { 
    fetchmode "cs", FetchMode.JOIN 
    fetchMode "cs.b", FetchMode.JOIN 
} 

Qualche idea?

risposta

8

Risolto.

A.withCriteria() { 
    cs{ 
     fetchMode "cs.b", FetchMode.JOIN 
    } 
} 

O

A.withCriteria() { 
    cs{ 
     b{ 
     } 
    } 
} 

In entrambi i casi Hibernate è utilizzando due query. Molto meglio del 98 che avevo prima ;-)

Problemi correlati