Это действительно зависит от того, хотите ли вы использовать отложенную загрузку ваших объектов или нет. Ленивая загрузка, как правило, предпочтительнее, если у вас очень сложная схема, когда выборка объектов с нетерпением приведет к объединению нескольких таблиц. В этом случае вы должны загрузить объект, и при запуске геттера для содержащегося объекта Hibernate выполнит другой запрос.
Однако, как упомянул Кен Чан, для достижения этого в веб-приложении вам необходимо использовать шаблон OSIV, чтобы поддерживать сеансы в активном состоянии, пока представление все еще активно, в противном случае вы получите LazyLoadingExceptions.
При использовании DTO вы должны охотно получать данные, но, с другой стороны, вам не нужно возвращаться в БД для отложенных загрузок. Это действительно зависит от вашей задачи и требований.