როგორ არის Hibernate-ში დაგვიანებული კოლექციების ინიციალიზაცია განხორციელებული?
sobes.tech AI
პასუხი AI-სგან
Hibernate-ში დაგვიანებული ჩატვირთვა (lazy loading) განახორციელებულია პროქსის ობიექტებისა და სპეციალური კოლექციის შეფუთვების მეშვეობით. როდესაც იძენს ობიექტს კოლექციასთან ერთად, Hibernate არ იტვირთება ყველა ელემენტს კოლექციაში დაუყოვნებლივ, არამედ ქმნის პროქსის კოლექციას, რომელიც შეიცავს სესიის მითითებას და კითხვაზე ინფორმაციას.
როდესაც კოლექცია პირველად გამოიყენება (მაგალითად, size() მეთოდის გამოძახებით ან იტერირებით), Hibernate ავტომატურად ახორციელებს მონაცემთა ბაზაში მოთხოვნას და იტვირთება რეალური მონაცემები. ეს ეხმარება რესურსების დაზოგვას და ჩატვირთვის დროს შემცირებას, განსაკუთრებით დიდი მონაცემების სამუშაოს დროს.
მაგალითი:
@Entity
public class Author {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "author")
private Set<Book> books;
// getter და setter
}
აქ კოლექცია books იტვირთება მხოლოდ პირველად მიმართვისას, არა Author ობიექტის ჩატვირთვისას.