2010-09-04 14 views

Répondre

1

Je ne suis pas sûr de ce que vous cherchez exactement. Mais pour mettre est simplement, LAZY signifie simplement qu'une association enfant ne sera pas chargé lors du chargement du parent, il sera chargé lorsque demandé explicitement par l'application. EAGER signifie qu'une association enfant sera chargée lors du chargement du parent.

En général, LAZY est de meilleures performances (lorsque vous n'avez pas besoin ou que vous voulez charger un graphe d'objets entiers). Mais en fonction de la situation, il se peut qu'il soit sous-optimal ou conduise au fameux problème "N + 1 SELECT" (en itérant sur une liste de N entités, l'accès à une association LAZY déclenchera un autre SELECT, résultant en 1 + N SELECT au fin). Selon la situation, une association EAGER - ou un FETCH JOIN pour pré-lier l'association - est préférable.

Je ne sais pas quelle partie ne sait pas, mais voici quelques ressources qui pourraient aider:

Voir aussi:

+0

Les concepts sont clairs, je suis à la recherche d'une discussion sur les stratégies. Je vais vérifier vos liens, tnx. –

0

livre "Java Persistence avec Hibernate" par Bauer et King, chapitre 13 " Optimisation de la récupération et de la mise en cache ". Vous devriez être en mesure de trouver une copie du livre en ligne.