Sobes.tech
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 имкон медиҳанд, ки ҳолати объектҳоро назорат ва ҳамоҳангсозии онҳоро бо базаи додаҳо анҷом диҳанд.