오류 찾기

[오류] myBatis 마이바티스 쿼리 오류 해결 - nested exception is org.apache.ibatis.exceptions.toomanyresultsexception

코소미 2021. 7. 6. 10:41

myBatis 마이바티스 쿼리 오류 해결 

nested exception is org.apache.ibatis.exceptions.toomanyresultsexception

 

 

서버를 실행하고,

내가 만든 기능을 확인 하기 위해 '조회'를 했는데,

마이바티스 쿼리에서 오류가 발생한 원인을 기록해본다.

 

controllerstatusadvice - handledataaccessexception - msg
-> nested exception is org.apache.ibatis.exceptions.toomanyresultsexception: expected one result (or null) to be returned by selectone(), but found: 2

 

Selectone을 Dao에 정의를 내렸기 때문에 하나의 데이터만 가져와야 하는데

결과 row가 1개가 아닌, 1개 이상으로 응답해줘서 오류가 발생했다.

 

 

왜 해당 오류가 발생 하였는지 내가 SELECT 쿼리를 확인해 보았는데. . 

WHERE 조건을 안걸었던것..... 바보 

 

필요한 하나의 데이터만 뽑아와야하는데,

모든 데이터가 다 딸려왔던것이였고

nested exception is org.apache.ibatis.exceptions.toomanyresultsexception 오류가 발생 한 것이였다.

 

  <!-- 프로젝트 정보 조회 -->
  <select id="selectProjectInfo" parameterType="paramMap" resultType="resultMap" >
	SELECT P.PROJECT_SEQ,         /* 프로젝트 일련번호 */
		   P.PROJECT_NAME,        /* 프로젝트 이름 */
		   P.PROJECT_IDENTIFIER,  /* 프로젝트 식별자 */
		   P.PROJECT_CONTENT,     /* 프로젝트 설명 */
		   F_GET_DATETIME(P.REG_DATETIME) AS REG_DATE,  /* 등록 일시 */
		   P.REG_USER_SEQ
	  FROM T_PROJECT P
	 WHERE P.PROJECT_SEQ = #{project_seq}
  </select>

 

위와 같이 WHERE절 조건을 추가 해주었고!

 

 

 

[2021-07-06 10:28:52:9538]  [admin][0:0:0:0:0:0:0:1] INFO  jdbc.sqltiming - 

SELECT 
      P.PROJECT_SEQ, 
      P.PROJECT_NAME, 
      P.PROJECT_IDENTIFIER, 
      P.PROJECT_CONTENT, 
      F_GET_DATETIME(P.REG_DATETIME) AS REG_DATE, 
      P.REG_USER_SEQ
 FROM T_PROJECT P
 WHERE P.PROJECT_SEQ = '2'
 {executed in 4 msec}

[2021-07-06 10:28:52:9539]  [admin][0:0:0:0:0:0:0:1] INFO  jdbc.resultsettable - 
|------------|-------------|-------------------|----------------|--------------------|-------------|
|project_seq |project_name |project_identifier |project_content |reg_date            |reg_user_seq |
|------------|-------------|-------------------|----------------|--------------------|-------------|
|2            |testtest     |null               |null            |2021-07-05 17:42:13 |1            |
|------------|-------------|-------------------|----------------|--------------------|-------------|

 

위와 같이 정상적으로 내가 원하는 한개의 데이터만 가져왔다. 

 

이렇게 아주 쉽고 간단한 오류를 해결하였다 . .  하하