에러 모음

[MyBatis] MyBatisSystemException, BindingException

junani0v0 2024. 6. 7. 21:53

< 에러 메시지 >

SEVERE: 경로 [/pf]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'boardSeq' not found. Available parameters are [boardTypeSeq, arg0, param1, param2]]을(를) 발생시켰습니다.

org.apache.ibatis.binding.BindingException: Parameter 'boardSeq' not found. Available parameters are [boardTypeSeq, arg0, param1, param2]

 

BindingException

MyBatis에서 발생하는 예외 중 하나로, 주로 매핑 과정에서 발생

 - 매퍼 메서드의 파라미터와 SQL 매퍼의 파라미터 이름 불일치

 - 매퍼 인터페이스의 파라미터 개수 불일치

 - 잘못된 파라미터 사용

 

MyBatisSystemException

MyBatis에서 발생하는 시스템 예외로, MyBatis 프레임워크 내부에서 예기치 않은 오류가 발생시 발생

 - 기본 예외 포장( BindingException 같은 예외가 발생했을 때 이를 MyBatisSystemException으로 래핑하여 던짐)

 - SQL 쿼리 실행 오류

 - MyBatis의 구성 및 설정 오류

< 원인 >

//다중 업로드파일 가져오기
public List<BoardAttachDto> getAttachInfo(int boardSeq, int boardTypeSeq);

MyBatis에서 SQL 쿼리를 실행하는 동안 boardSeq라는 파라미터를 찾지 못해 발생

< 해결 >

//다중 업로드파일 가져오기
public List<BoardAttachDto> getAttachInfo(@Param("boardSeq") int boardSeq, @Param("boardTypeSeq") int boardTypeSeq);

@Param 어노테이션을 사용하여 파라미터 이름을 명시적으로 지정