Junior — Middle
Vai vari sniegt piemēru Java situācijai, kad tiek izmantota pesimistiska bloķēšana datu piekļuvei, lai novērstu konfliktus?
sobes.tech AI
Atbilde no AI
Pesimistiskā bloķēšana Java bieži tiek izmantota, kad ir nepieciešams nodrošināt, ka dati netiks mainīti citu pavedienu laikā, kad tiek veikta kritiska operācija. Piemēram, strādājot ar datu bāzi caur JPA/Hibernate, var izmantot lock() metodi ar bloķēšanas tipu PESSIMISTIC_WRITE, lai novērstu vienlaicīgas tā paša ieraksta izmaiņas:
EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();
// Iegūt objektu ar rakstīšanas bloķēšanu
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);
// Veikt izmaiņas
entity.setValue(newValue);
// Saglabāt izmaiņas
em.persist(entity);
tx.commit();
Šajā piemērā, kamēr transakcija nav pabeigta, citas transakcijas, kas mēģina iegūt bloķējumu uz to pašu ierakstu, gaidīs, kas novērš konfliktus un nodrošina datu integritāti.