오늘은 오늘의집 프로젝트를 하면서 발생했던 오류에 대해서 기록하고자한다.
오늘 도 또 에러노트가 쌓여져 가기 시작한다.
자 그럼 바로 시작해보자.
selectOne.java 오류
3월 21, 2022 10:07:16 오전 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: 경로 []의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근
본 원인(root cause)과 함께, 예외 [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: 54]을(를) 발생시켰습니다.
일반적으로 여러개의 테이블은 List 를 사용하고, 한개의 데이터만을 불러올 때는 selectOne을 사용한다. selectOne을 사용할 때 여러개의 테이블또는 데이터를 사용하게되면 다음과 같은 오류가 나타나게된다. 그래서 본인은 Membermpp.xml에 있는 selectOne 코드라인을 수정하였다.
<select id="selectOne" resultMap="resultMapObj">
SELECT
a.ifmmSeq
,a.ifmmName
,a.ifmmId
,a.ifmmDelNy
,b.ifmpNumber
,c.ifmeEmailFull
,a.regDateTime
FROM
infrMember a
LEFT JOIN
infrMemberPhone b ON a.ifmmSeq = b.ifmmSeq
LEFT JOIN
infrmemberEmail c ON a.ifmmSeq = c.ifmmSeq
</select>
처음에 이렇게 했다가 오류가 발생하였다.
여러개 데이터가 들어오기 때문이다.
selectOne은 단일 데이터를 가져온다.
<select id="selectOne" resultMap="resultMapObj">
SELECT
a.ifmmSeq
,a.ifmmName
,a.ifmmId
,a.ifmmDelNy
,a.regDateTime
FROM
infrMember a
WHERE 1=1
AND ifmmSeq = #{ifmmSeq}
</select>
결국 MemberView.jsp를 띄우기 위해서 selectOne의 데이터를 단일만 가지고 오도록 수정하였다.
결과값
To be continue..
'Front' 카테고리의 다른 글
[Spring] c:out 태그 란? (0) | 2022.03.29 |
---|---|
[Spring] POST 방식과 GET 방식 차이 (0) | 2022.03.28 |
[Spring] 고급개발자가 되는과정 로그 세팅 (0) | 2022.03.17 |
[Spring] Server.xml 에서 path 수정 할 경우 (0) | 2022.03.16 |
[Spring] 404 에러, Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. (0) | 2022.03.15 |