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.