Middle
Aký je rozdiel medzi lazy a eager načítaním?
sobes.tech AI
Odpoveď od AI
Línové načítanie odkladá inicializáciu objektu do prvého prístupu k nemu. Hromadné načítanie inicializuje objekt ihneď pri načítaní hlavného objektu, ktorý ho obsahuje.
Rozdiely:
| Charakteristika | Línové načítanie | Hromadné načítanie |
|---|---|---|
| Čas načítania | Pri prvom použití | Pri načítaní hlavného objektu |
| Zaťaženie | Rozložené v čase | Jednorazové, na začiatku |
| Pamäť | Šetrí pamäť na začiatku | Môže vyžadovať viac pamäti ihneď |
| Výkon | Lepšie pri práci s časťou dát | Môže byť rýchlejšie, ak sú všetky dáta potrebné ihneď |
Príklad v Hibernate:
// Línové načítanie
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY)
private List<Item> items;
}
// Hromadné načítanie
@Entity
public class Order {
@OneToMany(fetch = FetchType.EAGER)
private List<Item> items;
}