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 позволяват да се контролира състоянието на обектите и тяхната синхронизация с базата данни.