Junior — Middle
Kokiais metodais naudojate valdyti objektų gyvavimo ciklą Hibernate?
sobes.tech AI
Atsakymas iš AI
Hibernate'e objektų gyvavimo ciklo valdymas vyksta naudojant įvairius metodus ir būsenas entitetų:
- save() / persist() — išsaugo naują objektą duomenų bazėje ir perkelia jį į „valdomą“ (persistent) būseną.
- update() / merge() — atnaujina esamą objektą arba sujungia atjungto objekto būseną su dabartiniu kontekstu.
- delete() — ištrina objektą iš duomenų bazės.
- evict() — pašalina objektą iš sesijos ir perkelia jį į „atsijungusį“ (detached) būseną.
- refresh() — atnaujina objekto būseną iš duomenų bazės.
Hibernate gyvavimo ciklas apima šiuos būsenas: transient (laikinas, nesusijęs su sesija), persistent (valdomas sesijos), detached (atsijungęs nuo sesijos).
Pavyzdys:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Objekto kūrimas ir išsaugojimas
User user = new User();
user.setName("John");
session.save(user); // objektas tampa persistent
// Objekto atnaujinimas
user.setName("John Doe");
session.update(user);
// Objekto ištrynimas
session.delete(user);
tx.commit();
session.close();
Šiuo būdu Hibernate metodai leidžia kontroliuoti objektų būseną ir jų sinchronizaciją su duomenų baze.