작성한 질문수
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원 리포지토리 개발
해결된 질문
작성
·
346
0
MemberRepository를 개발할 때, @PersistenceContext를 사용할 때와 @RequiredArgsConstructor를 사용할 때 테스트 결과가 달라져서 문의남깁니다.
@PersistenceContextprivate EntityManager em;
은 가능하지만, @RequiredArgsConstructor를 사용할 때는 final이 들어가야만 하던데 왜 그런지 알 수 있을까요?
답변 1
1
안녕하세요. 정성엽님, 공식 서포터즈 OMG입니다.
@RequiredArgsConstructor 롬복 어노테이션은 final 키워드가 선언된 필드에만! 생성자 주입이 발생합니다.
@PersistenceContext의 경우 final이 선언되지 않아도 됩니다. 두 어노테이션의 차이로 보시면 될 것 같습니다.
@RequiredArgsConstructor를 사용하려면 final 혹은 @NonNull 어노테이션을 선언해주세요.
감사합니다.