Встречается на собеседованиях • сегодня

Для чего Hibernate создает Proxy

Hibernate использует прокси-объекты для ленивой загрузки (lazy loading) связанных сущностей. Это позволяет избежать избыточных запросов к БД, пока данные реально не понадобятся. Прокси наследует класс сущности и перехватывает вызовы методов, загружая данные при первом обращении.

Пример:

java
@Entity
class Order {
    @Id Long id;
    @ManyToOne(fetch = FetchType.LAZY) // Прокси вместо реального User
    User user;
}

Order order = session.get(Order.class, 1L);
User user = order.getUser(); // Здесь еще прокси
user.getName(); // Только теперь выполнится SQL-запрос

Ключевые особенности:

  • Прокси создаются только для LAZY-ассоциаций
  • Работают через байткод-генерацию или CGLIB
  • Должны соблюдать контракт equals()/hashCode()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы