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-ի մեթոդները թույլ են տալիս վերահսկել օբյեկտների վիճակը և նրանց սինխրոնիզացիան տվյալների բազայի հետ։