Sobes.tech
Middle

Quelle est la différence entre le chargement paresseux (lazy) et le chargement eager (eager) ?

sobes.tech IA

Réponse de l'IA

Le chargement paresseux retarde l'initialisation de l'objet jusqu'au premier accès à celui-ci. Le chargement eager initialise l'objet immédiatement lors du chargement de l'objet principal qui le contient.

Différences :

Caractéristique Chargement paresseux Chargement eager
Temps de chargement Lors de la première utilisation Lors du chargement de l'objet principal
Charge Distribuée dans le temps Unique, au début
Mémoire Économise la mémoire initialement Peut nécessiter plus de mémoire immédiatement
Performance Meilleur lors du travail avec une partie des données Peut être plus rapide si toutes les données sont nécessaires immédiatement

Exemple en Hibernate :

// Chargement paresseux
@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

// Chargement eager
@Entity
public class Order {
    @OneToMany(fetch = FetchType.EAGER)
    private List<Item> items;
}