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

정성엽님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 리포지토리 개발

@PersistenceContext와 @RequiredArgsConstructor 관련하여 궁금한 점이 있습니다.

해결된 질문

23.09.09 17:51 작성

·

325

0

MemberRepository를 개발할 때, @PersistenceContext를 사용할 때와 @RequiredArgsConstructor를 사용할 때 테스트 결과가 달라져서 문의남깁니다.

@PersistenceContext
private EntityManager em;

은 가능하지만, @RequiredArgsConstructor를 사용할 때는 final이 들어가야만 하던데 왜 그런지 알 수 있을까요?

답변 1

1

OMG님의 프로필 이미지

2023. 09. 10. 22:37

안녕하세요. 정성엽님, 공식 서포터즈 OMG입니다.

@RequiredArgsConstructor 롬복 어노테이션은 final 키워드가 선언된 필드에만! 생성자 주입이 발생합니다.

@PersistenceContext의 경우 final이 선언되지 않아도 됩니다. 두 어노테이션의 차이로 보시면 될 것 같습니다.

 

@RequiredArgsConstructor를 사용하려면 final 혹은 @NonNull 어노테이션을 선언해주세요.

감사합니다.