Sobes.tech
Junior — Middle

Hibernate-də kolleksiyaların gecikmiş başlanması necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Hibernate-də gecikdirilmiş yükləmə (lazy loading) kolleksiyaları proxy obyektləri və xüsusi kolleksiya örtükləri vasitəsilə həyata keçirilir. Bir varlıq kolleksiya ilə yükləndikdə, Hibernate dərhal bütün elementləri yükləmir, əvəzinə, sessiyaya və sorğu haqqında məlumatlara istinad edən proxy kolleksiyası yaradır.

Kolleksiya ilk dəfə istifadə olunduqda (məsələn, size() metodunu çağırmaq və ya iterasiya etmək), Hibernate avtomatik olaraq verilənlər bazasına sorğu göndərir və real məlumatları yükləyir. Bu, resurslardan qənaət etməyə və yükləmə vaxtını azaltmağa kömək edir, xüsusən böyük məlumat həcmi ilə işləyərkən.

Nümunə:

@Entity
public class Author {
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "author")
    private Set<Book> books;

    // getter və setterlər
}

Burada, books kolleksiyası ilk dəfə müraciət edildikdə yüklənəcək, Author obyektinin yüklənməsi zamanı yox.