인프런 커뮤니티 질문&답변

강민우님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

@Rollback 설정 이후 insert query 발생 시 Null in ID column 에러

19.12.29 19:46 작성

·

529

0

안녕하세요, 강의를 따라하던 도중, 회원가입 테스트 코드에 @Rollback(false)를 설정하니 insert쿼리가 나가는걸 확인했습니다.

다만 console 로그에는 id값이 1로 mapping이 된걸 보았는데,  그 바로 직후 ID에 Null이 들어왔단 에러를 마주하였습니다.

조언을 구하고자 질문 남깁니다.

2019-12-29 19:42:39.261  INFO 77766 --- [           main] p6spy                                    : #1577616159261 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop
insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)
insert into member (city, street, zipcode, name, member_id) values (NULL, NULL, NULL, 'kim', 1);
2019-12-29 19:42:39.261  WARN 77766 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 23502, SQLState: 23502
2019-12-29 19:42:39.261 ERROR 77766 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : NULL not allowed for column "ID"; SQL statement:

답변 2

1

강민우님의 프로필 이미지
강민우
질문자

2019. 12. 29. 21:57

해결? 이라고 하긴 그러나 ... 기존에 생성되어있던 db 파일 삭제 후 다시 실행해보니깐 정상적으로 동작은 합니다만 이유가 궁금하긴 하네요 ㅎㅎ...

일단은 문제 재현이 어려워서 넘어가야 할꺼같습니다..

0

김영한님의 프로필 이미지
김영한
지식공유자

2019. 12. 30. 19:44

안녕하세요. 강민우님

우선 어떻게든? 해결을 하셨다니 다행입니다^^

오류 메시지를 보니! 

NULL not allowed for column "ID"; SQL statement:

이 부분이 수상하네요. 지금 ID 컬럼명은 member_id 인데, 오류 메시지는 ID 라고 되어 있네요. 아마 기존 테이블이 정상 DROP에 실패한 것 같습니다.

현재 h2 데이터베이스 1.4.200에서 테이블 DROP이 정상 적으로 안되는 이슈가 있습니다.

만약 1.4.200 버전이라면, 기존 버전과 db 파일을 삭제하시고,

https://www.h2database.com/html/download.html 에 가셔서 1.4.199 버전을 새로 설치하는 것을 권장합니다.

감사합니다^^