Junior — Middle
Кадом усулҳоро барои идоракунии давраи ҳаёти объектҳо дар Hibernate истифода мебаред?
sobes.tech AI
Ҷавоб аз AI
Дар Hibernate идоракунии ҳаёти объектҳо тавассути усулҳо ва ҳолатҳои гуногуни сутунҳо амалӣ мешавад:
- save() / persist() — навъи объектро ба базаи додаҳо нигоҳ медорад ва онро ба ҳолати «идорашаванда» (persistent) мегузаронад.
- update() / merge() — ҳолати объектро навсозӣ мекунад ё ҳолати объектҳои ҷудошударо бо контексти ҳозира мепайвандад.
- delete() — объектро аз базаи додаҳо мебарорад.
- evict() — объектро аз сессия хориҷ мекунад ва онро ба ҳолати «ҷудошуда» (detached) мегузаронад.
- refresh() — ҳолати объектро аз базаи додаҳо нав мекунад.
Ҳаёти объект дар Hibernate شامل ҳолатҳои: transient (мавқеъӣ, бо сессия алоқаманд нест), persistent (аз ҷониби сессия идора мешавад), detached (аз сессия ҷудо шудааст).
Масалан:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Таҳия ва нигоҳдории объект
User user = new User();
user.setName("John");
session.save(user); // объект persistent мешавад
// Навсозии объект
user.setName("John Doe");
session.update(user);
// Нест кардани объект
session.delete(user);
tx.commit();
session.close();
Инчунин, усулҳои Hibernate имкон медиҳанд, ки ҳолати объектҳоро назорат ва ҳамоҳангсозии онҳоро бо базаи додаҳо анҷом диҳанд.