Java/Spring
[Spring] MVC Mybatis DB에 값 넣기 Mapping 오류 해결
펜네임
2019. 11. 18. 14:58
오류 구문
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'r_content' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]
컨트롤러
@PostMapping("/goingDraftNo")
public String goingDraftNo(Model model, DraftVO draft, ReturnVO back, RedirectAttributes rttr) {
// 진행문서를 '반려' 상태로 update
service.draftNo(draft);
// 진행문서를 반려기록함 테이블에 insert
service.returnInsert(back);
rttr.addFlashAttribute("result", "noDraftSuccess");
return "redirect:/goingDraft";
}
잘 돌아가게 수정된 코드임.
insert 부분이 안 돼서 골머리였음.
오류 원인
Mybatis는 한 가지 자료형밖에 처리를 못함.
컨트롤러단에서 서비스단으로 던지는 객체 개수는 한 개여야 함.
나는 3개를 던지려고 했었는데, 2개여도 문제가 생긴다고 한다.
해결법
나처럼 컨트롤러에서 한 가지 VO에 뭉쳐서 던지거나,
컨트롤러에서 매퍼로 객체나 변수를 던질 때 Map 함수를 사용하여 하나로 뭉쳐서 던져주거나,
컨트롤러에서 @Param을 쓰고 매퍼에서 ParameterType을 써주는 방법이 있다.