Похоже, у вас есть сущность с именем Person, которая имеет лениво загруженную сопоставленную коллекцию адресов? Вы загрузили человека, и сеанс, в котором он был загружен, теперь закрыт.
После закрытия сеанса вы попытались получить доступ к этой коллекции адресов, а Hibernate попытался загрузить их. Однако это невозможно, если исходный сеанс больше недоступен.
Чтобы получить доступ к свойству адреса, у вас есть несколько вариантов:
Используйте шаблон OpenSessionInView, чтобы гарантировать, что сеанс Hibernate остается открытым в течение цикла запроса / ответа (так как вы пометили Spring MVC, я предполагаю, что это веб-операция). По сути, это ограничивает ваш сеанс Hibernate запросом HTTP.
Убедитесь, что все необходимые свойства загружены до закрытия сеанса (транзакция зафиксирована). Вы можете сделать это, используя
Hibernate.initialize (Person.Address)
или написав HQL, использующий выборку из левого соединения. Это может быть что-то вроде:
createQuery("from Person as person left join fetch person.address")
Это переопределит любую конфигурацию отложенной загрузки только для этого запроса и обеспечит инициализацию любых коллекций.