Sobes.tech
Junior — Middle

Ar naudojote Hibernate Version savybę objektų kūrimo metu versijų valdymui?

sobes.tech AI

Atsakymas iš AI

Hibernate'e @Version savybė naudojama optimistinio užrakinimo mechanizmo įgyvendinimui, kuris padeda kontroliuoti objektų versijas jų atnaujinimo metu duomenų bazėje. Tai užkerta kelią duomenų praradimui, kai keli sandoriai vienu metu keičia tą pačią įrašą.

Naudojimo pavyzdys:

@Entity
public class Product {
    @Id
    private Long id;

    private String name;

    @Version
    private int version;

    // getteriai ir setteriai
}

Kiekvieną kartą atnaujinus objektą, Hibernate automatiškai padidina version lauko reikšmę. Jei saugojimo metu duomenų bazės versija nesutampa su objekto atmintyje esančia versija, išmetama išimtis OptimisticLockException, kuri signalizuoja apie atnaujinimo konfliktą.