Sobes.tech
Middle

Care este diferența dintre încărcarea leneșă (lazy) și cea avidă (eager)?

sobes.tech AI

Răspuns de la AI

Încărcarea întârziată amână inițializarea obiectului până la primul acces la acesta. Încărcarea avidă inițializează obiectul imediat la încărcarea obiectului principal care îl conține.

Diferențe:

Caracteristică Încărcare întârziată Încărcare avidă
Timpul de încărcare La prima utilizare La încărcarea obiectului principal
Încărcare Distribuită în timp Unică, la început
Memorie Economisește memorie inițial Poate necesita mai multă memorie imediat
Performanță Mai bună când se lucrează cu parte din date Poate fi mai rapid dacă toate datele sunt necesare imediat

Exemplu în Hibernate:

// Încărcare întârziată
@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

// Încărcare avidă
@Entity
public class Order {
    @OneToMany(fetch = FetchType.EAGER)
    private List<Item> items;
}