Junior — Middle
Ako je v Hibernate implementovan odložený štart kolekcií?
sobes.tech AI
Odpoveď od AI
V Hibernate je odložené načítanie (lazy loading) kolekcií implementované prostredníctvom proxy objektov a špeciálnych obalov kolekcií. Pri načítaní entity s kolekciou Hibernate ne načíta okamžite všetky prvky kolekcie, ale namiesto toho vytvorí proxy kolekciu, ktorá obsahuje odkaz na reláciu a informácie o dopyte.
Keď je kolekcia použitá prvýkrát (napríklad volaním metódy size() alebo vykonaním iterácie), Hibernate automaticky vykoná dopyt do databázy a načíta skutočné dáta. To pomáha šetriť zdroje a skracovať čas načítania, najmä pri práci s veľkými objemami dát.
Príklad:
@Entity
public class Author {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "author")
private Set<Book> books;
// getter a setter
}
Tu bude kolekcia books načítaná iba pri prvom prístupe, nie pri načítaní objektu Author.