Junior — Middle
Оё метавонед шарҳ диҳед, ки компонентаи EntityManager дар контексти идоракунии давраи зиндагӣ ва ҳамкории бо базаи додаҳо чӣ гуна кор мекунад?
sobes.tech AI
Ҷавоб аз AI
EntityManager дар интерфейси калидӣ дар JPA (Java Persistence API) мебошад, ки давраи зиндагии вуҷудҳоро идора мекунад ва бо базаи додаҳо муошират мекунад.
Ӯ масъул аст:
- Эҷод, хондан, навсозӣ ва нест кардан (CRUD) объектҳои вуҷуд.
- Идоракунии ҳолатҳои вуҷудҳо: транзитӣ (нав, ба базаи додаҳо алоқаманд нест), идорашаванда (назоратшаванда, ҳамоҳанг бо контекст), ҷудо (аз контекст ҷудо шудааст), хориҷшуда (ҳангоми нест кардан ишора шудааст).
- Маҳзусиятии нигоҳдорӣ (persistence context) — маҷмӯи вуҷудҳои идорашаванда, ки EntityManager пайгирӣ мекунад.
- Ҳамоҳангсозии автоматии тағйиротҳои вуҷудҳо бо базаи додаҳо дар вақти даъвати методҳои flush() ё commit() транзаксия.
Намунаи истифодаи EntityManager:
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
// Эҷоди вуҷуд нав
User user = new User();
user.setName("Иван");
em.persist(user); // ҳоло user аз ҷониби EntityManager идора мешавад
// Тағйир додани вуҷуд
user.setName("Иван Иванов");
em.getTransaction().commit(); // тағйиротҳо дар базаи додаҳо сабт мешаванд
em.close();
Тавре ки мебинем, EntityManager роҳи қулай ва самараноки кор бо объектҳо ва базаи додаҳоро пешниҳод мекунад, ҳолатҳо ва транзаксияҳои онҳоро идора мекунад.