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

Почему Entity не может быть финальным классом

В JPA/Hibernate Entity не может быть финальным (final), потому что фреймворк использует проксирование для ленивой загрузки (Lazy Loading) и других функций. Прокси создаются путем наследования от Entity-класса, что невозможно, если класс объявлен как final.

Пример:

java
@Entity
public class User {  // Нельзя сделать final
    @Id
    private Long id;
    private String name;
    // Геттеры/сеттеры
}

Если User будет final, Hibernate не сможет создать прокси для ленивой загрузки ассоциаций (например, @OneToMany). Это приведет к ошибкам во время выполнения. Также финальные классы усложняют работу с AOP и другими механизмами, зависящими от динамического проксирования.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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