2012-05-16 13 views
5

En mi proyecto Grails, tengo las siguientes clases:criterios Grails consulta con fetchMode ansiosos con dos niveles

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

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

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

me gustaría consultar la clase A y llevar a los todas las asociaciones de B y C con impaciencia. Probé la siguiente consulta de criterios, pero cuando repito sobre C desde A, hibernate usa la inicialización lenta para consultar objetos B.

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

¿Alguna idea?

Respuesta

8

Resuelto.

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

O

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

En ambos casos Hibernate es el uso de dos consultas. Mucho mejor que el 98 que tuve antes ;-)

Cuestiones relacionadas