Sobes.tech
Junior — Middle

Java-da məlumatlara girişdə münaqişələri qarşısını almaq üçün pessimist kilidləmənin istifadə olunduğu vəziyyət nümunəsi verə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da pessimist kilidləmə, kritik əməliyyat zamanı məlumatların digər axınlar tərəfindən dəyişdirilməsinin qarşısını almaq üçün tez-tez istifadə olunur. Məsələn, JPA/Hibernate vasitəsilə verilənlər bazası ilə işləyərkən, lock() metodundan PESSIMISTIC_WRITE kilid növü ilə istifadə etmək olar ki, bu da eyni qeydin eyni zamanda dəyişdirilməsinin qarşısını alır:

EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();

// Yazma kilidi ilə obyekt əldə edin
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);

// Dəyişikliklər edin
entity.setValue(newValue);

// Dəyişiklikləri yadda saxlayın
em.persist(entity);
tx.commit();

Bu nümunədə, əməliyyat tamamlanana qədər, digər əməliyyatlar eyni qeydə kilid almağa çalışarkən gözləyəcək, bu da münaqişələri qarşısını alır və məlumatların bütövlüyünü təmin edir.