consultas de carregamento rápido com GORM / Hibernate

Meu aplicativo Grails tem os seguintes objetos de domínio

class ProductType {
    String name
    static hasMany = [attributes: Attribute]
}

class Attribute {       
    String name
    static belongsTo = [productType: ProductType]
} 

Meu DB tem 7ProductTypes e cada um desses tem 3Attributes. Se eu executar a consulta:

def results = ProductType.withCriteria {
    fetchMode("attributes", org.hibernate.FetchMode.EAGER)
}

Eu espero 7 instâncias deProductType para ser devolvido, mas na verdade eu recebo 21 (7 x 3). Eu entendo que se eu fosse executar uma consulta SQL equivalente ao acima, o conjunto de resultados teria 21 linhas

prod1 | attr1
prod1 | attr2
prod1 | attr3
..... | .....
..... | .....
prod7 | attr1
prod7 | attr2
prod7 | attr3
-------------
Total 21

Mas eu pensei que quando eu recuperasse esses resultados via Hibernate / GORM eu deveria pegar algo mais como:

prod1 | attr1, attr2, attr3    
..... | ...................
..... | ...................
prod7 | attr1, attr2, attr3
---------------------------
Total 7

Aliás, se eu remover o carregamento ansioso da consulta acima, fico 7ProductTypes como esperado. o que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion