Sobes.tech
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;
}