Каким образом осуществляется добавление новой сущности в базу данных с использованием Hibernate?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Добавление новой сущности в Hibernate обычно выполняется через создание объекта и сохранение его в рамках открытой транзакции. Для этого используется Session и методы вроде persist() или save(). После выполнения операции Hibernate синхронизирует объект с таблицей базы данных.
Определение:
В Hibernate новая сущность добавляется как обычный Java-объект, помеченный аннотациями ORM, например @Entity. Затем объект передается в Session, где Hibernate отслеживает его состояние и вставляет соответствующую запись в БД при сохранении или коммите транзакции.
С точки зрения жизненного цикла это переход из состояния transient в persistent.
Пример использования:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
User user = new User();
user.setName("Ivan");
user.setEmail("ivan@example.com");
session.persist(user); // или session.save(user)
tx.commit();
session.close();
Пояснение кода:
Код показывает стандартный сценарий вставки новой записи. Сначала открывается Session, затем начинается транзакция, чтобы операция была атомарной. После создания объекта User он передается в persist() или save(), и Hibernate подготавливает INSERT в базу. Реальная запись обычно выполняется при flush или при commit(). После завершения транзакции Session закрывается.
Ключевые моменты:
- Новая сущность создается как обычный Java-объект и должна быть помечена
@Entity. - Для вставки нужен открытый
Sessionи активная транзакция. - Чаще используют
persist(), иногдаsave()— оба приводят к сохранению новой записи. - Hibernate сам отслеживает состояние объекта и формирует SQL
INSERT. - Коммит транзакции закрепляет изменения в базе данных.
- Для исправной работы важно не забывать закрывать
Sessionи обрабатывать исключения.