Встречается на собеседованиях • сегодня
В чем разница между Cache в JPA
JPA Cache бывает двух типов:
- 1st Level Cache (L1) - привязан к EntityManager, включен по умолчанию. Хранит сущности в пределах одной транзакции. Пример:
java
EntityManager em = emf.createEntityManager();
User user1 = em.find(User.class, 1L); // запрос в БД
User user2 = em.find(User.class, 1L); // берется из кэша
em.close(); // кэш очищается- 2nd Level Cache (L2) - общий для всего приложения, требует явной настройки (Hibernate, Ehcache). Работает между разными EntityManager:
java
// Первый EM
EntityManager em1 = emf.createEntityManager();
User user1 = em1.find(User.class, 1L); // запрос в БД
em1.close();
// Второй EM
EntityManager em2 = emf.createEntityManager();
User user2 = em2.find(User.class, 1L); // берется из L2 кэшаКлючевые различия:
- L1 живет в рамках EM, L2 - глобальный
- L1 всегда включен, L2 требует конфигурации
- L1 очищается при закрытии EM, L2 сохраняется

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы