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;
}