Sobes.tech
Middle

Mis vahe on lazy ja eager laadimisel?

sobes.tech AI

Vastus AI-lt

Late laadimine lükkab objekti initsialiseerimise edasi kuni esimese sellele juurdepääsuni. Huviline laadimine initsialiseerib objekti kohe selle laadimisel, mis sisaldab seda.

Erinevused:

Omadus Late laadimine Huviline laadimine
Laadimise aeg Esimese kasutamise ajal Peaobjekti laadimisel
Koormus Ajaliselt jaotatud Ühekordne, alguses
Mälu Säästab mälu alguses Võib nõuda kohe rohkem mälu
Jõudlus Paremini osade andmetega töötades Võib olla kiirem, kui kõik andmed on kohe vajalikud

Hibernate näide:

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

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