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();