consultas de carga impaciente con GORM / Hibernate
La aplicación My Grails tiene los siguientes objetos de dominio
class ProductType {
String name
static hasMany = [attributes: Attribute]
}
class Attribute {
String name
static belongsTo = [productType: ProductType]
}
Mi DB tiene 7ProductType
sy cada uno de esos tiene 3Attribute
s. Si ejecuto la consulta:
def results = ProductType.withCriteria {
fetchMode("attributes", org.hibernate.FetchMode.EAGER)
}
Espero 7 instancias deProductType
Por ser devuelto, pero de hecho obtengo 21 (7 x 3). Entiendo que si tuviera que ejecutar una consulta SQL equivalente a la anterior, el conjunto de resultados tendría 21 filas
prod1 | attr1
prod1 | attr2
prod1 | attr3
..... | .....
..... | .....
prod7 | attr1
prod7 | attr2
prod7 | attr3
-------------
Total 21
Pero pensé que cuando recupero estos resultados a través de Hibernate / GORM debería obtener algo más como:
prod1 | attr1, attr2, attr3
..... | ...................
..... | ...................
prod7 | attr1, attr2, attr3
---------------------------
Total 7
Por cierto, si elimino la carga de datos de la consulta anterior, obtengo 7ProductType
s como se esperaba. ¿Qué me estoy perdiendo?