Насколько я знаю, для создания динамического прокси Java требуется, чтобы у одного из них был интерфейс для работы с прокси-сервером. Тем не менее, Hibernate, похоже, управляет своим динамическим генератором прокси, не требуя, чтобы один интерфейс записи для классов сущностей. Как оно работает? Единственный ключ из документации Hibernate относится к тому факту, что классы должны иметь как минимум конструктор, видимый для пакета, для генерации прокси.
Является ли Hibernate выполнением встроенной обработки байт-кода с помощью специального загрузчика классов? Документация предполагает, что это не так. Итак, как они создают свои прокси-обертки вокруг конкретных объектов объекта? Разве они просто создают прокси-сервер какого-то тривиального интерфейса, не заботясь о безопасности типов, а затем бросают его по своему желанию?