Sobes.tech
Middle

Kuo skiriasi lazy ir eager įkėlimas?

sobes.tech AI

Atsakymas iš AI

Vėlyvas įkėlimas atideda objekto inicializavimą iki pirmojo prieigos momento. Skubus įkėlimas iš karto inicializuoja objektą įkeliant pagrindinį objektą, kuris jį sudaro.

Skirtumai:

Savybė Vėlyvas įkėlimas Skubus įkėlimas
Įkėlimo laikas Pirmojo naudojimo metu Kai įkeliamas pagrindinis objektas
Krovinys Laikui bėgant paskirstytas Vienkartinis, pradžioje
Atmintis Taupo atmintį pradžioje Gali reikalauti daugiau atminties iš karto
Našumas Geriau dirbant su dalimi duomenų Gali būti greičiau, jei visi duomenys reikalingi iš karto

Hibernate pavyzdys:

// Vėlyvas įkėlimas
@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

// Skubus įkėlimas
@Entity
public class Order {
    @OneToMany(fetch = FetchType.EAGER)
    private List<Item> items;
}