2011-04-01 1 views
2

Existe-t-il un moyen que je peux charger avec impatience un graphe d'objet entier avec une méthode de domaine list() de grails?Désireux de charger l'association entière?

En ce moment, je précise

MyObject.list(fetch:[assoc1:'eager']), mais assoc1 a des associations qui doivent également être chargés avec enthousiasme. Y a-t-il une solution facile pour charger avec impatience tout mon graphique d'objet?

Répondre

3

Trouvé dans la documentation de Grails. Ce n'est pas exactement en utilisant la méthode list(), cependant, cela vous évite d'avoir à spécifier impatiemment dans vos classes de domaine, donc vous pouvez faire une recherche ardue à volonté. Je ne suis toujours pas sûr à 100% si cela obtiendra ce que vous voulez, mais c'est la chose la plus proche que je pourrais trouver.

avec Interrogation Dans le chargement complet section sur nous Désireuse semblables dans et Lazy discuté comment spécifier de façon déclarative aller chercher à éviter le problème N + 1 SELECT . Cependant, cela peut aussi être réalisé en utilisant une requête de critères:

def criteria = Task.createCriteria() 
def tasks = criteria.list{ 
    eq "assignee.id", task.assignee.id 
    join 'assignee' 
    join 'project' 
    order 'priority', 'asc' 
} 
+0

Il me se rapproche, au moins. +1 upvote pour être utile, et vous obtenez l'accepter sauf si quelqu'un vient avec une meilleure réponse. –

Questions connexes