Spring Data JDBC 실습을 위한 인메모리 DB인 H2와 인텔리제이를 연결하는 중 오류가 발생했다.
위 그림대로 Post 요청을 보내어 repository를 통한 save() 메서드를 사용하여, H2에 입력인 message 객체를 저장할 때에 해당 에러가 발생하였다.
After saving the identifier must not be null
Message Table은 AUTO_INCREMENT를 사용한 id와 메세지 내용을 담을 message로 구성이 되어있다.
CREATE TABLE IF NOT EXISTS MESSAGE (
message_id bigint NOT NULL AUTO_INCREMENT,
message varchar(100) NOT NULL,
PRIMARY KEY (message_id)
);
SQL 구문에서는 문제가 될만한 부분이 없었고,
repository의 CrudRepository에서 놓친 부분이 있었다.
즉, save() 메서드를 사용할 때에 컬럼을 명시하지 않으면 null값으로 덮어쓰는 현상이 발생하게 된다.
참고
해당 Message 엔터티에 식별자로 사용하는 messageId에 @Id 애너테이션을 붙여 열로 지정해줌으로써 해당 오류를 해결하였다.