Sobes.tech
Back to questions
Junior — Middle
53

Каким образом осуществляется добавление новой сущности в базу данных с использованием 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 и обрабатывать исключения.