У меня есть объект домена, у которого есть атрибут, представляющий собой коллекцию, содержащую другой объект домена. Это достигается с помощью отображения гибернации (которое в конечном итоге выполняет соединение с другой таблицей). Hibernate, по умолчанию, кажется, лениво создает экземпляр этой коллекции. Это оказывается отличной вещью, потому что, в зависимости от того, что мне нужно отобразить, мне не всегда нужно загружать коллекцию.
Моя проблема заключается в следующем: при написании моих запросов гибернации (в моих DAO) я использую следующее для открытия / закрытия сеанса:
Session session = getSessionFactory().openSession();
//query goes here using the session var
session.close();
Проблема в том, что когда Hibernate наконец-то начинает лениво загружать мою коллекцию, Session
уже давно закрыт! Как я могу обойти это? Я предполагаю, что я должен закрыть сессию, как я делаю ...
Это ошибка, которую я получаю:
SEVERE: failed to lazily initialize a collection of ...