[ERROR] ibatis.exceptions.toomanyresultsexception 원인

자바에서 ibatis.exceptions.toomanyresultsexception 에러는 iBatis에서 쿼리 실행 결과로 예상한 것보다 더 많은 결과가 반환될 때 발생합니다. 데이터베이스와 객체를 매핑해 주는 iBatis가 쿼리의 결과로 한 개가 나오길 기대하는 상황에서 여러 개의 결과가 반환되었을 때 해당 에러가 발생합니다.

 

예를 들어, 아래의 쿼리를 했을 때 department_id가 1인 직원은 한 명이어야 하는데, 2개 이상의 행이 출력되면 ibatis.exceptions.toomanyresultsexception 에러가 발생합니다.

SELECT * FROM employees WHERE department_id = 1;

 

해결을 위해서는 먼저 실제로 결과 값이 두 개가 나오는지 데이터베이스에서 쿼리해보고, 그게 맞으면 하나를 수정 또는 삭제해 주면 됩니다.

 

하지만 애초에 결과가 2개 이상이 나오면 에러가 발생하는 환경에서 테이블에 값이 2개 이상 insert된 거기 때문에 설계에 문제가 있다고 볼 수 있습니다. 결과 값이 2개가 나올 수 없도록 코드를 수정하는 작업도 함께 조치될 필요가 있습니다.

반응형

댓글

Designed by JB FACTORY