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

Можно ли использовать final класс для Entity в JPA

Да, можно. final классы допустимы в JPA, но с ограничениями:

  1. Hibernate требует возможность создания прокси для ленивой загрузки, что невозможно с final классами. Это означает, что ленивая загрузка (LAZY) для ассоциаций не будет работать.
  2. JPA-провайдеры могут использовать наследование для реализации некоторых функций (например, @MappedSuperclass), что также несовместимо с final.

Пример:

java
@Entity
public final class User {  // Будет работать, но без ленивой загрузки
    @Id
    private Long id;
    private String name;
}

Если ленивая загрузка не критична, final допустим. Но в большинстве случаев лучше избегать.

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

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

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

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