Mon application Grails a les objets suivants domainerequêtes désireux de chargement avec Gorm/Mise en veille prolongée
class ProductType {
String name
static hasMany = [attributes: Attribute]
}
class Attribute {
String name
static belongsTo = [productType: ProductType]
}
Mon DB a 7 ProductType
s et chacun de ces 3 a Attribute
s. Si j'exécute la requête:
def results = ProductType.withCriteria {
fetchMode("attributes", org.hibernate.FetchMode.EAGER)
}
Je me attends 7 cas de ProductType
à retourner, mais en fait je reçois 21 (7 x 3). Je comprends que si je devais exécuter un équivalent requête SQL à ce qui précède, l'ensemble des résultats aurait 21 lignes
prod1 | attr1
prod1 | attr2
prod1 | attr3
..... | .....
..... | .....
prod7 | attr1
prod7 | attr2
prod7 | attr3
-------------
Total 21
Mais je pensais que lorsque je récupère ces résultats via Hibernate/GORM je devrais obtenir quelque chose comme:
prod1 | attr1, attr2, attr3
..... | ...................
..... | ...................
prod7 | attr1, attr2, attr3
---------------------------
Total 7
Soit dit en passant, si je retire l'envie de chargement de la requête ci-dessus, je reçois 7 ProductType
s comme prévu. Qu'est-ce que je rate?
J'ai remarqué moi-même, mais était de retour quand j'utilisais Grails 1.0.4, pouvez-vous spécifier la version de Grails que vous utilisez? – billjamesdev
J'utilise la version 1.1.1 –