들어가기에 앞서
참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 지적 사항은 언제든지 환영합니다. 부디 댓글로 알려주시길 바랍니다. 감사합니다.
에러 발생 내용
There was an unexpected error (type = Iternal Server Error stats=500)
nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping[property = ‘regDate’….
마이바티스를 이용해서 간단한 CRUD 게시판을 구현하던 중에 위와 같은 에러가 발생했다. 에러 내용을 보면, 내부서버 오류(500번)가 발생했으며 클라이언트의 요청을 처리하는 서버 측에서 오류가 발생했음을 알 수 있다. 구체적인 원인으로는 파라미터 매핑에 문제가 생겼으며 문제의 변수는 ‘regDate’이다.
문제해결을 위해 마이바티스 쿼리 매핑을 등록해 놓은 xml파일에서 regDate를 작성한 부분과 BOARD테이블DDL을 확인해보자.
당시 나는 BOARD테이블에 REGDATE를 기본값으로 시스템의 날짜로 설정해놨다. 튜플이 추가되면 자동으로 추가한 시점이 등록되는 것으로 이해했기에, 아래와 같이 입력 자체를 구현하지 않았다.
그러나, mapper입장에서는 당연히 regDate라는 파라미터를 설정해놓았는데 해당 값을 입력하지 않았으므로 매핑할 값을 찾지 못 해 null에러가 발생한 것이다. 이 문제는 아래와 같이 regDate변수를 지움으로써 해결되었다.
결론
입력한 데이터가 어떻게 처리되고 어디로 전달되는지, 전체적인 흐름을 파악하는 것이 얼마나 중요한지 다시 한번 깨닫게 되었다..