Sobes.tech
Middle

რა განსხვავებაა ლიზი (lazy) და eager (მოყინული) ჩატვირთვას შორის?

sobes.tech AI

პასუხი AI-სგან

ლიზინგი გადადებს ობიექტის ინიციალიზაციას მის პირველ წვდომამდე. მყისიერი გადატვირთვა ინიციალიზებს ობიექტს მაშინვე, როდესაც ის შეიცავს მთავარ ობიექტს.

განსხვავებები:

მახასიათებელი ლიზინგი გადატვირთვა მყისიერი გადატვირთვა
დამატების დრო პირველი გამოყენებისას მთავარი ობიექტის დამატებისას
დატვირთვა დროის განმავლობაში განაწილებული ერთჯერადი, დასაწყისში
მეხსიერება თავიდან ხარჯავს მეხსიერებას შეიძლება საჭირო გახდეს მეტი მეხსიერება დაუყოვნებლივ
შესრულება უკეთესია ნაწილობრივი მონაცემებით მუშაობისას შეიძლება იყოს უფრო სწრაფი, თუ ყველა მონაცემი დაუყოვნებლივ სჭირდება

Hibernate-ის მაგალითი:

// ლიზინგი გადატვირთვა
@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

// მყისიერი გადატვირთვა
@Entity
public class Order {
    @OneToMany(fetch = FetchType.EAGER)
    private List<Item> items;
}