В настоящее время я работаю над приложением, которое использует Spring Boot и Spring Data (его JpaRepository
интерфейсы, чтобы быть точным) вместе с Hibernate.
Одна вещь, которую я люблю в Hiberante, - это ее функция кеширования - когда вы отправляете несколько запросов, которые соответствуют определенному объекту, вы получите тот же экземпляр этого объекта при каждом выполнении запроса (относительно оператора Java ==). Однако при использовании классов Spring Data и JpaRepository
это не всегда так. По этой причине я предполагаю, что здесь есть несколько экземпляров HibernateSession
.
Мой вопрос заключается в следующем: как Spring Data обрабатывает сеансы Hibernate? Когда он открывает или закрывает их? Есть ли способ настроить его на использование одного и того же сеанса для всей среды выполнения моего приложения, чтобы в полной мере использовать кеш-память Hibernate? Есть ли причина не делать этого таким образом?
Спасибо,
Алан