본문 바로가기

에러사항 모음

(5)
Parameter value ["Value"] did not match expected type JPA를 이용하여 공부를 하던 중 위와 같은 에러가 발생했다. 업데이트 관련 컨트롤러를 만들던 중 심심하기도 하여 Optional을 써서 get()으로 만들어진 객체에 Request 요청에 의한 데이터가 정확히 들어갔는지 궁금했었다. 아래는 Service 단의 코드이다. 테스트로 하고 있던거라 메소드명은 무시하고.. @Override public UserEntity updataUser(Request request) { Optional user = Optional.of(userRepository.findByIdAndPwd(request.getUserId(), request.getPwd())); UserEntity findUser = user.get(); return findUser; } 아래는 해당 메소드..
query did not return a unique result 컨트롤러를 테스트 하는 중 위 에러가 발생했다. 해석하면 "고유한 결과를 반환시키지 못함" 인데.. 원인은 @GetMapping public ResponseEntity emailInquiry(@RequestBody UserEntity.Request request){ System.out.println(request); UserEntity getEmail = userRepository.findByEmail(request.getEmail()); UserEntity.Response res = UserEntity.Response.toResponse(getEmail); return ResponseEntity.ok().body(res); } 여기에 있다. 이메일로 회원을 찾는 컨트롤러 메소드이다. 에러를 자세히 보면..
Table 'DB명.hibernate_sequence' doesn't exist 에러가 자꾸 발생한다... 이 에러를 반드시 극복하고야 말겠다는 생각으로 기록을 남긴다. 나 같은 경우에 Entity와 DB 간 정확히 매핑도 하고 테스트도 끝냈다고 생각했는데, 위의 불청객이 찾아왔다. 난 구글링을 참 좋아하는 편이라.. 정답은 늘 가까이에 있었다. 먼저 첫번째. 처음에는 Mysql의 대소문자 구분이 안되어서 그런줄 알았다. 그래서 명령어를 통해 현재 내가 사용하고 있는 Mysql이 대소문자 구분으로 인해 이런 것인지 알아보았다. 대소문자의 문제는 아니었다. 애초에 작업할 때 전부 소문자와 언더바를 이용해서 네이밍 했기 때문이다. 구글링을 해보니 훌륭한 해답이 있었다. 두번째. 진짜 정리를 깔끔하게 해놓으신 어느 개발자 분의 해답을 갖고 왔다. 감사합니다. 원인은 1. 스프링 부트의 버..
Field '컬럼명' doesn't have a default value Spring과 Mysql 연동 작업 중 발생한 에러. 원인은 매핑되는 필드끼리 타입이 달라 발생했다. Spring의 Entity 에서는 Long id로 작성했었고, Mysql 에서는 varchar id로 서로 타입이 충돌나서 발생했었기에 서로 맞추는 작업으로 해결 완료
Unable to locate Attribute with the the given name [컬럼명] on this ManagedType Entity 작업 중 발생한 에러이다. 아니 이게 뭐지? 하고 계속 생각해봤다. 알고 나서 에러로그를 보면 상당히 쉬운 문제지만, 처음 봤을 때는 그냥 벙~쪘다.. 이유는 간단하다. 로그를 보면 id라는 이름을 찾을 수 없다는 내용인데.. .소문자 id로 작성한다는게 무의식적으로 파스칼 케이스로 첫글자를 대문자로 적어서 못찾는 것이였다. 소문자로 수정하면 정상 동작한다. 꼼꼼하게 체크하는 습관을 가져야겠다.