Почему Hibernate не создает прокси для объектов Entity?

Вы когда-нибудь задумывались, почему Hibernate не создает прокси для объектов Entity по умолчанию?

В случае с @OneToMany(fetch = FetchType.LAZY) он заменяет нашу коллекцию на PersistentCollection.

Если у нас есть @OneToOne(fetch = FetchType.LAZY), он предоставляет доверенность собственности.

Тем не менее, Hibernate не может лениво загружать поле String и даже не пытаться вернуть прокси Entity вместо объекта Entity.

Почему Hibernate не превращает объекты, которые мы получаем из сеанса, в прокси?

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

chrylis -cautiouslyoptimistic- 03.09.2018 20:29

Чтобы добавить гибкости возвращаемым объектам. Например - ленивая загрузка строк. Spring не боится прокси и прокси во многих вещах, начиная от Configuration, AOP и заканчивая реализациями классов @Lookup, заменой не-синглтонов на синглтоны с прокси-серверами и т. д.

Pasha 03.09.2018 20:36

Каждый пример чего добавляет полезную функциональность. Ленивая загрузка отдельные столбцы была бы безумной с точки зрения типичных накладных расходов по сравнению с простой загрузкой строки; именно поэтому объедините таблицы существовать.

chrylis -cautiouslyoptimistic- 04.09.2018 12:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
86
0

Другие вопросы по теме