Junior — Middle
Kādiem metodiem jūs izmantojat, lai pārvaldītu objektu dzīves ciklu Hibernate?
sobes.tech AI
Atbilde no AI
Hibernate dzīves cikla pārvaldība tiek veikta ar dažādām metodēm un entitāšu stāvokļiem:
- save() / persist() — saglabā jaunu objektu datu bāzē un pārvieto to uz «pārvaldāmo» (persistent) stāvokli.
- update() / merge() — atjaunina esošo objektu vai apvieno atdalīta objekta stāvokli ar pašreizējo kontekstu.
- delete() — izdzēš objektu no datu bāzes.
- evict() — izņem objektu no sesijas un pārvieto to uz «atslēgtu» (detached) stāvokli.
- refresh() — atjaunina objekta stāvokli no datu bāzes.
Hibernate dzīves cikls ietver šādus stāvokļus: transient (īslaicīgs, nesasaistīts ar sesiju), persistent (pārvaldīts sesijas), detached (atslēgts no sesijas).
Piemērs:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Objekta izveide un saglabāšana
User user = new User();
user.setName("John");
session.save(user); // objekts kļūst par persistent
// Objekta atjaunināšana
user.setName("John Doe");
session.update(user);
// Objekta dzēšana
session.delete(user);
tx.commit();
session.close();
Tādējādi Hibernate metodes ļauj kontrolēt objektu stāvokli un to sinhronizāciju ar datu bāzi.