• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

왜 final 을 사용하면 안될까요!?

21.03.03 20:20 작성 조회수 753

2

@Entity에는 final 클래스를 필드에도 사용하지 말라고 하셨는데 이유가 뭔지 궁금합니다.

답변 1

답변을 작성해보세요.

5

안녕하세요. jsungmin6님

JPA 구현체들은 엔티티를 내부에서 다양한 방식으로 사용합니다.

예를 들어서 엔티티를 JPA 구현체가 생성할 때 리플렉션을 사용해서 객체를 먼저 생성하고, 나중에 값을 필드에 직접 넣어주기도 합니다.

이런 경우 final이면 안되겠지요?

지연로딩 등을 위해 프록시 기술을 사용하기도 합니다.

이렇게 다양한 방식으로 JPA 구현체들이 사용할 수 있도록 JPA는 스펙상 final을 사용하지 못하도록 막아두었습니다.

감사합니다.