Sobes.tech
Senior
47

¿Qué sucederá al realizar dos llamadas a findById con un mismo ID dentro de una misma sesión de Hibernate (caché de primer nivel)?

Empresas donde se preguntó
СБЕРСБЕР

Respuesta de la IA

sobes.tech AI

При двух вызовах findById с одним и тем же ID в рамках одной Hibernate-сессии будет использован кэш первого уровня (Session Cache).

Первый вызов загрузит объект из базы данных и поместит его в кэш сессии. При втором вызове Hibernate не будет делать дополнительный запрос к базе, а вернёт объект из кэша.

Это позволяет повысить производительность, избегая повторных запросов к БД в рамках одной сессии и обеспечивая целостность данных (один и тот же объект в памяти).

Пример:

Session session = sessionFactory.openSession();
MyEntity entity1 = session.find(MyEntity.class, id); // запрос к БД
MyEntity entity2 = session.find(MyEntity.class, id); // из кэша, без запроса
session.close();