블로그 이름

[ERROR] NonUniqueResultException: result returns more than one elements 본문

개발/오류

[ERROR] NonUniqueResultException: result returns more than one elements

Hide 2025. 12. 22. 22:51

에러로그는 다음과 같다

org.springframework.dao.IncorrectResultSizeDataAccessException: result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: result returns more than one elements

 

에러 발생 행은 JPA 쿼리 findById 메서드에서 발생하였다.

 

단건 조회를 기대했는데 실제로는 여러 건이 조회된 경우에 발생하는 에러로, 조회 메서드는 1건 결과를 기대하였으나 DB 조회 결과가 2건 이상이 조회되어 JPA가 어떤 값을 반환해야 하는지 알 수 없어 발생하는 에러다.

 

User user = userRepository.findById(id);

 

위 코드에서, id값을 가진 user의 수가 2건 이상일 때 결과는 2행 이상이 반환되는데, 반환되는 객체는 단일 객체일 때 발생한다.

 

나같은 경우 활성화 상태인 1개 데이터만 가져오는게 맞기 때문에 

findFirstByIdOrderByRegDateDesc 와 같이 변경해주어 해결하였다.