오류 찾기
[오류] 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 |
|------------|-------------|-------------------|----------------|--------------------|-------------|
위와 같이 정상적으로 내가 원하는 한개의 데이터만 가져왔다.
이렇게 아주 쉽고 간단한 오류를 해결하였다 . . 하하