일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Spring Boot가 해결하려고 했던 문제
- 스프링 구글차트로 기간별 현황 조회하기
- 오라클월별데이터
- 썸머노트
- 스프링 에러
- java
- 자바 기초
- 자바
- 자바왕초보
- 자바기초
- 제이쿼리
- 스프링 제어역전
- 자바왕기초
- 오라클주별데이터
- 오라클클라우드에 젠킨스 설치하기
- 스프링 Ioc
- 스프링과 스프링부트 차이점
- 스프링
- maven
- 오라클일별데이터
- 스프링 구글차트
- HTML
- CSS
- 자바 왕기초
- 세션
- 스프링 Ioc Container
- 오라클통계
- jsp
- 오라클
- 스프링 부트가 해결하려고 했던 문제
Archives
- Today
- Total
Just Do it
[스프링] Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2 본문
신입 개발자가 되기 위해 공부했던 독학 자료들/에러 해결 모음
[스프링] Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
Seojoo21 2022. 3. 22. 23:471. 에러
개인 프로젝트인 SJBoard에서 회원 아이디 찾기 기능을 구현하고자 하였다. 그래서 비즈니스 계층에서 사용자가 입력한 email 주소를 가지고 아이디를 찾는 메서드를 선언 및 구현한 후 테스트 파일에서 정상 동작하는지 테스트 하였다. 그런데 아래와 같은 에러를 만났다.
Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
해석해보니 이 에러는 select 문에서 결과값이 없거나(null) 하나여야만 하는데 두 개 이상 나올 때 발생하는 에러였다.
2. 원인
비즈니스 계층에서 선언한 메서드의 반환타입이 문제였다.
MemberService 인터페이스에 회원 아이디를 찾는 메서드를 아래와 같이 선언하였는데, 현재 프로젝트의 경우 이메일 주소 하나로 아이디를 여러 개 가입할 수 있기 때문에 여러 개의 아이디가 조회될 경우 위와 같은 에러가 발생하는 것이었다.
3. 해결
해당 메서드의 반환 타입을 아래와 같이 List<MemberVO>로 수정하였다. 아이디가 여러 개가 나올 경우 List 컬렉션에 각각의 MemberVO 객체로 저장될 수 있도록 하였더니 테스트 결과 에러 없이 실행되었다.