Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչպես է աշխատում Lazy բեռնման ռազմավարությունը JPA/Hibernate-ում?

sobes.tech AI

Պատասխան AI-ից

JPA/Hibernate-ում Lazy բեռնման ռազմավարությունը նշանակում է, որ կապված գոյությունները չեն բեռնվում անմիջապես հիմնական գոյության բեռնումից հետո, այլ միայն առաջին դիմումի ժամանակ: Սա օգնում է օպտիմալացնել կատարողականությունը՝ նվազեցնելով տվյալների բազայից բեռնված տվյալների քանակը:

Օրինակ, եթե لديك գոյություն Order և մի հավաքածու items, երբ բեռնում եք պատվերը տվյալ բազայից, Hibernate- ը չի բեռնի անմիջապես բոլոր items-ը: Նրանք բեռնվում են միայն այն ժամանակ, երբ դուք կանչում եք order.getItems():

Օրինակ:

@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

Այս մոտեցմամբ, Hibernate- ը ստեղծում է proxy օբյեկտ items հավաքածուի համար, և իրական հարցումը տվյալների բազայից կատարվում է միայն այն ժամանակ, երբ դուք մուտք եք գործում այդ հավաքածուին։