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.