Вы когда-нибудь задумывались, почему Hibernate не создает прокси для объектов Entity по умолчанию?
В случае с @OneToMany(fetch = FetchType.LAZY) он заменяет нашу коллекцию на PersistentCollection.
Если у нас есть @OneToOne(fetch = FetchType.LAZY), он предоставляет доверенность собственности.
Тем не менее, Hibernate не может лениво загружать поле String и даже не пытаться вернуть прокси Entity вместо объекта Entity.
Почему Hibernate не превращает объекты, которые мы получаем из сеанса, в прокси?
Чтобы добавить гибкости возвращаемым объектам. Например - ленивая загрузка строк. Spring не боится прокси и прокси во многих вещах, начиная от Configuration, AOP и заканчивая реализациями классов @Lookup, заменой не-синглтонов на синглтоны с прокси-серверами и т. д.
Каждый пример чего добавляет полезную функциональность. Ленивая загрузка отдельные столбцы была бы безумной с точки зрения типичных накладных расходов по сравнению с простой загрузкой строки; именно поэтому объедините таблицы существовать.




Почему это должен? Прокси дорогие.