Sobes.tech
Junior — Middle

Môžete vysvetliť, ako funguje komponenta EntityManager v kontexte správy životného cyklu a interakcie s databázou?

sobes.tech AI

Odpoveď od AI

EntityManager je kľúčové rozhranie v JPA (Java Persistence API), ktoré spravuje životný cyklus entít a komunikuje s databázou.

Je zodpovedný za:

  • Vytváranie, čítanie, aktualizáciu a mazanie (CRUD) objektov entít.
  • Správu stavov entít: prechodný (nový, neviazaný na DB), spravovaný (kontrolovaný, synchronizovaný s kontextom), odpojený (odpojený od kontextu), odstránený (označený na odstránenie).
  • Kontext perzistencie je súbor spravovaných entít, ktoré EntityManager sleduje.
  • Automatickú synchronizáciu zmien entít s databázou pri volaní metód flush() alebo commit() transakcie.

Príklad použitia EntityManager:

EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();

// Vytvorenie novej entity
User user = new User();
user.setName("Иван");

em.persist(user); // teraz je user spravovaný EntityManagerom

// Zmena entity
user.setName("Иван Иванов");

em.getTransaction().commit(); // zmeny sa uložia do DB
em.close();

Takto EntityManager poskytuje pohodlný a efektívny spôsob práce s objektmi a databázami, spravujúc ich stavy a transakcie.