Middle
Mi a különbség a lustán (lazy) és a mohón (eager) betöltés között?
sobes.tech MI
Válasz az MI-től
Lusta betöltés késlelteti az objektum inicializálását az első hozzáférésig. Az előtérbe helyezett betöltés az objektumot azonnal inicializálja, amikor a fő objektum, amely tartalmazza, betöltődik.
Különbségek:
| Jellemző | Lusta betöltés | Előtérbe helyezett betöltés |
|---|---|---|
| Betöltési idő | Első használatkor | A fő objektum betöltésekor |
| Terhelés | Időben elosztott | Egyszeri, a kezdetkor |
| Memória | Kezdetben takarékoskodik a memóriával | Azonnal több memóriát igényelhet |
| Teljesítmény | Jobb részadatokkal való munkánál | Gyorsabb lehet, ha minden adat azonnal szükséges |
Hibernate példában:
// Lusta betöltés
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY)
private List<Item> items;
}
// Előtérbe helyezett betöltés
@Entity
public class Order {
@OneToMany(fetch = FetchType.EAGER)
private List<Item> items;
}