По различным причинам, слишком скучным, чтобы войти, у меня есть приложение, в котором я ожидаю, что мне потребуется регулярно использовать методы Hibernate flu sh () и clear (). К сожалению, когда я делаю это, я позже могу столкнуться с проблемами с ленивыми извлечениями, которые еще не были выполнены.
При поиске в поисках я вижу, что есть свойство Hibernate, enable_lazy_load_no_trans, которое, по-видимому, решит эту проблему без необходимости go проходить и переписывать все мои сопоставления для использования типа нетерпеливого извлечения. Я также видел описания, в которых указано, что при установке этого свойства каждая отложенная выборка создает новую сессию для выборки, которая имеет очевидные недостатки производительности.
Тем не менее, все примеры, которые я видел, это те, в которых сессия была закрыта перед отложенной загрузкой. Что происходит, когда открывается совершенно хороший сеанс базы данных, но для объекта, который был удален из кэша, необходимо выполнить отложенную выборку? Это все еще открывает новое соединение для выборки, или это достаточно умно, чтобы использовать существующее?