에러가 자꾸 발생한다... 이 에러를 반드시 극복하고야 말겠다는 생각으로 기록을 남긴다.
나 같은 경우에 Entity와 DB 간 정확히 매핑도 하고 테스트도 끝냈다고 생각했는데, 위의 불청객이 찾아왔다.
난 구글링을 참 좋아하는 편이라.. 정답은 늘 가까이에 있었다. 먼저 첫번째.
처음에는 Mysql의 대소문자 구분이 안되어서 그런줄 알았다. 그래서 명령어를 통해 현재 내가 사용하고 있는 Mysql이 대소문자 구분으로 인해 이런 것인지 알아보았다.
대소문자의 문제는 아니었다. 애초에 작업할 때 전부 소문자와 언더바를 이용해서 네이밍 했기 때문이다.
구글링을 해보니 훌륭한 해답이 있었다. 두번째.
진짜 정리를 깔끔하게 해놓으신 어느 개발자 분의 해답을 갖고 왔다. 감사합니다.
원인은
1. 스프링 부트의 버전에 따라 useNewIdGeneratorMappings 설정이 다르다는 것. 난 2.x 버전을 쓰고 있으니 true이다.
2. Hibernate 5부터 MySQL에서의 GenerationType.AUTO는 IDENTITY가 아닌 TABLE을 기본 시퀀스 전략으로 가져간다는 것.
따라서 난 IDENTITY를 사용할 것이기 때문에 아래와 같이 수정하였다.
수정 후 테스트 해본 결과..
잘 된다.
'에러사항 모음' 카테고리의 다른 글
Parameter value ["Value"] did not match expected type (0) | 2022.11.29 |
---|---|
query did not return a unique result (0) | 2022.11.28 |
Field '컬럼명' doesn't have a default value (0) | 2022.11.24 |
Unable to locate Attribute with the the given name [컬럼명] on this ManagedType (0) | 2022.11.24 |