작성
·
4.3K
1
안녕하세여 최고의 자바 티처 김영한 선생님
멤버 서비스 계층까지 만들고 멤버 테스트에서 회원 가입하는데아래와 같은 에러가 발생해서여 어떻게 고치는게 맞는건지 잘몰겠어서여 ㅠ 같은 내용으로 메일과 프로젝트 압축 파일 첨부도 보냈어여 봐주시면 감사여
에러 내용:
java.lang.NullPointerException: Cannot invoke "javax.persistence.EntityManager.createQuery(String, java.lang.Class)" because "this.em" is null
at jpabook.jpashop.repository.MemberRepository.findByName(MemberRepository.java:31)
at jpabook.jpashop.repository.MemberRepository$$FastClassBySpringCGLIB$$97f1c501.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at jpabook.jpashop.repository.MemberRepository$$EnhancerBySpringCGLIB$$d04a376a.findByName(<generated>)
at jpabook.jpashop.MemberService.MemberService.validateDuplicateMember(MemberService.java:29)
at jpabook.jpashop.MemberService.MemberService.join(MemberService.java:23)
답변 1
2
안녕하세요. terecal님
@RequiredArgsConstructor는 final이 있는 필드만 모아서 생성자를 만들어줍니다.
(스프링은 생성자가 딱 1개만 있으면 의존관계를 자동으로 주입해줍니다.)
memberRepository를 주입받지 못해서 Null 예외가 발생하네요.
final 키워드를 추가해주세요.
변경전
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class MemberService {
private MemberRepository memberRepository;
변경후
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class MemberService {
private final MemberRepository memberRepository;
감사합니다.