Есть 3 основных варианта:
1) Правильно настройте отложенную загрузку в ваших сопоставлениях и запросах: это не всегда самый простой способ, поскольку вы не всегда знаете, как ваши объекты будут использоваться на уровне представления при разработке DAO.
2) Используйте шаблон OpenSessionInView: таким образом, вы сможете лениво загружать связанные объекты на уровне представления. Это, вероятно, самый простой способ, так как он требует лишь немного настройки. Но будьте осторожны, так как отложенная загрузка может быть довольно дорогой, и если вы делаете что-то подозрительное на уровне презентации, вы можете столкнуться с проблемами производительности. Вы также можете изменить свои объекты из презентации, что означает, что легче делать ошибки при предварительном программировании.
3) Добавьте сервисный слой, который преобразует ваш объект Hibernate в объекты-значения: это наиболее точный вариант, поскольку вы также можете ограничить свойства wchi, представленные в презентации. Вы сохраняете границы транзакций вокруг вызова службы, поэтому вы уверены, что ничего не будет изменено за пределами службы.
Во всех случаях вы должны хотя бы попытаться правильно настроить отложенную загрузку. В противном случае у вас могут возникнуть проблемы с производительностью!