본문 바로가기

에러사항 모음

Parameter value ["Value"] did not match expected type

JPA를 이용하여 공부를 하던 중 위와 같은 에러가 발생했다.

업데이트 관련 컨트롤러를 만들던 중 심심하기도 하여 Optional을 써서 get()으로 만들어진 객체에 Request 요청에 의한 데이터가 정확히 들어갔는지 궁금했었다.

아래는 Service 단의 코드이다. 테스트로 하고 있던거라 메소드명은 무시하고..

@Override
	public UserEntity updataUser(Request request) {
		Optional<UserEntity> user = Optional.of(userRepository.findByIdAndPwd(request.getUserId(), request.getPwd()));
		UserEntity findUser = user.get();
		return findUser;
	}

 

아래는 해당 메소드를 통해 Request가 제대로 들어가는지 확인하기 위해 포스트맨으로 요청을 날려보았다.

머선일이고

일단 DB에 연동된 UserEntity의 필드명과 다를게 없었다. "userId"와 "pwd" 모두 문자열 하나 틀린게 없었고 작은 프로젝트다 보니 빠르게 다른 패키지들부터 확인해보았다. 원인은 가까운 곳에 있었다. 분명 create까지 하여 조회까지 완료된 상태. 다른 패키지들의 코드들도 자세히 순찰한 결과.. 답은 늘 가까이에 있었다.

하 ㅋ

내가 원하는 로직을 구성하기 위해 Repository에서 유저 아이디와 패스워드를 통해 회원을 찾는 인터페이스 메소드를 짜놓았었는데.. 바보 같이 userId로 요청해놓고 찾는건 Id로 찾고 있었네..

다시 내가 원하는 정보인 "userId"로 메소드명을 바꾸어 준 후에 테스트를 해보면..

잘 나온다. 정리하자면 해당 에러는 값이 제대로 매칭되지 않았던게 문제.