본문 바로가기
Java/Spring

[Spring] MVC Mybatis DB에 값 넣기 Mapping 오류 해결

by 펜네임 2019. 11. 18.

오류 구문

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을 써주는 방법이 있다.

댓글