Встречается на собеседованиях • сегодня

Как внутри устроен EntityManager

EntityManager — это интерфейс JPA, управляющий жизненным циклом сущностей (Entity). Он работает с Persistence Context — областью памяти, где хранятся управляемые сущности.

Основные механизмы:

  1. Persistence Context — кэш первого уровня, хранящий сущности в состоянии Managed.
  2. Flush — синхронизация контекста с БД (автоматически перед транзакцией или вручную через em.flush()).
  3. Connection Pool — использует пул соединений для взаимодействия с БД.
  4. Lazy Loading — прокси-объекты для отложенной загрузки связанных сущностей.

Пример:

java
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
User user = em.find(User.class, 1L); // Сущность в Managed состоянии
user.setName("New Name"); // Изменения отслеживаются
em.getTransaction().commit(); // Изменения сохраняются в БД
em.close(); // Persistence Context закрывается

Типы Persistence Context:

  • Transaction-scoped (по умолчанию) — живет в рамках транзакции.
  • Extended — сохраняется между транзакциями (используется в Stateful Beans).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы