Junior — Middle
Hibernate'da ob'ektlarning hayot aylanishini boshqarish uchun qanday usullardan foydalanasiz?
sobes.tech AI
AIdan javob
Hibernate'da ob'ektlarning hayot aylanishini boshqarish uchun turli metodlar va ob'ekt holatlari ishlatiladi:
- save() / persist() — yangi ob'ektni ma'lumotlar bazasiga saqlaydi va uni «boshqariladigan» (persistent) holatga o'tkazadi.
- update() / merge() — mavjud ob'ektni yangilaydi yoki ajratilgan ob'ekt holatini joriy kontekst bilan birlashtiradi.
- delete() — ob'ektni ma'lumotlar bazasidan o'chiradi.
- evict() — ob'ektni sessiyadan chiqaradi va uni «ajratilgan» (detached) holatga o'tkazadi.
- refresh() — ob'ekt holatini ma'lumotlar bazasidan yangilaydi.
Hibernate'da ob'ektlarning hayot aylanishi quyidagi holatlarni o'z ichiga oladi: transient (vaqtinchalik, sessiya bilan bog'lanmagan), persistent (sessiya tomonidan boshqariladigan), detached (sessiyadan ajratilgan).
Misol:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Ob'ekt yaratish va saqlash
User user = new User();
user.setName("John");
session.save(user); // ob'ekt persistent holatga o'tadi
// Ob'ektni yangilash
user.setName("John Doe");
session.update(user);
// Ob'ektni o'chirish
session.delete(user);
tx.commit();
session.close();
Shu tarzda, Hibernate metodlari ob'ekt holatini va ularning ma'lumotlar bazasi bilan sinxronizatsiyasini nazorat qilish imkonini beradi.