오늘은 오늘의집 프로젝트를 하면서 발생했던 오류에 대해서 기록하고자한다.

오늘 도 또 에러노트가 쌓여져 가기 시작한다.

자 그럼 바로 시작해보자.


 

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..

복사했습니다!