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