Web/JPA

javax.persistence.NoResultException: No entity found for query

UL :) 2022. 8. 8. 20:04

에러 로그

 

문제 원인

@Override
public Member findByLoginId(String loginId) {
    return em.createQuery("select m from Member m where m.loginId = :loginId", Member.class)
            .setParameter("loginId", loginId)
            .getSingleResult();
}

 

쿼리의 결과값이 없을 때가 있을 수 있으니  try catch문으로 NoResultException 예외처리를 해주어야 한다

 

 

변경 후

@Override
public Member findByLoginId(String loginId) {
    try{
        return em.createQuery("select m from Member m where m.loginId = :loginId", Member.class)
                .setParameter("loginId", loginId)
                .getSingleResult();
    } catch(NoResultException e){
        return null;
    }
}