Tiny Bunny
본문 바로가기

벽돌깨기

[Spring] TooManyResultsException 에러 해결

728x90

 

 

 

 

프로젝트를 하면서 발생했던 에러 TooManyResultsException

프로젝트 병합 후 테스트를 하는데 500 에러가 났다.

 

 

로그인에 성공하면 메인페이지로 넘어가야 하는데

아무런 반응이 없고 TooManyResultsException가 뜨네요.

 

Expected one result (or null) to be returned by selectOne(), but found: 6

2023-12-01 10:35:34.981 ERROR 6360 --- [p-nio-80-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is

org.apache.ibatis.exceptions.
TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 6
] with root cause org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 6 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:81) ~[mybatis-3.5.13.jar:3.5.13] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ~[mybatis-spring-2.1.1.jar:2.1.1] at com.sun.proxy.$Proxy89.selectOne(Unknown Source) ~[na:na] at

 

 

 

메일 인증 구현할 때 같은 메일로 회원가입을 진행했었는데,

DB를 확인해보니 데이터 중복 문제임을 확인할 수 있었습니다.

 

 

 

 

test@test.com으로 로그인을 하고 있었는데 중복 계정이 6개나 있네요.

 

에러 메세지였던 " Expected one result (or null) to be returned by selectOne(), but found: 6 "

즉, selectOne은 단일 데이터를 가져오는데 데이터 중복으로 인해

여러개의 데이터를 가져오려고 하고 있기 때문에 발생한 에러였습니다.

 

 

중복 데이터를 삭제한 후 로그인을 시도하니

세션에 값도 들어오고 메인페이지로 잘 이동합니다. ㅎㅎ

 

 

클라이언트 쪽에서 기본적인 유효성 검사만 진행되도록 구현했었는데

서버쪽에서 DB에 이미 유효한 메일이 존재할 경우

회원가입을 진행할 수 없도록 양방향 유효성 검사를 하도록 수정해야겠습니다.

728x90