Sobes.tech
Junior — Middle

Hibernate'da koleksiyonların gecikmiş başlatılması nasıl uygulanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Hibernate'da tembel yükleme (lazy loading) koleksiyonların proxy nesneleri ve özel koleksiyon sarmalayıcıları aracılığıyla uygulanır. Bir varlık koleksiyonla yüklendiğinde, Hibernate tüm öğeleri hemen yüklemez, bunun yerine bir proxy koleksiyonu oluşturur; bu koleksiyon, oturum referansı ve sorgu bilgisi içerir.

Koleksiyon ilk kez kullanıldığında (örneğin, size() yöntemi çağrıldığında veya yineleme yapıldığında), Hibernate otomatik olarak veritabanına bir sorgu gönderir ve gerçek verileri yükler. Bu, kaynak tasarrufu sağlar ve özellikle büyük veri hacimleriyle çalışırken yükleme süresini azaltır.

Örnek:

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

    // getter ve setterlar
}

Burada, books koleksiyonu ilk erişimde yüklenir, Author nesnesi yüklenirken değil.