인프런 커뮤니티 질문&답변

jsungmin6님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

객체와 테이블 매핑

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

작성

·

939

2

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

답변 1

6

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jsungmin6님

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

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

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

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

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

감사합니다.