Sobes.tech
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.