스프링 부트와 mariadb를 써보고 있었다.
게시글 작성 처리를 하는데 '작성' 버튼을 눌러도 데이터베이스에 작성한 데이터가 들어오지 않았다.
결론은 1. 데이터베이스 목록에 오타가 나서, 2. id(pk)에 AUTO_INCREMENT 으로 하지 않아서였다.
오류 목록
1. unknown column 'content' in 'field list'
2. returned no natively generated identity value
3. sql 1075 Incorrect table definition
찬찬히 살펴보니
error: 1054-42s22: unknown column 'content' in 'field list'
라는 에러가 있었다. 내 데이터베이스에 'content'라는 항목이 없었다고 한다. 정말 'context'로 오타가 나있었다.
고쳐도 되지 않아서 또 살펴보니
servlet.service() for servlet [dispatcherservlet] in context with path [] threw exception [request processing failed: org.springframework.orm.jpa.jpasystemexception: the database returned no natively generated identity value : com.study.board.entity.board] with root cause
데이터베이스에서 value를 못받아왔다고 한다.
보니까 내 데이터베이스에는 id, title, content가 있는데 id에서 발생한 문제 같았다.
PrimaryKey가 AUTO_INCREMENT 속성으로 되어있지 않아서 발생하는 에러
바로 AUTO_INCREMENT로 바꿔 보았다. 그런데 sql 1075 에러가 나는 것이었다.
AUTO INCREMENT 설정시 주의사항
- PRIMARY KEY 또는 UNIQUE로 설정해야한다.
- DataType은 숫자로만 가능하다.
- Data 입력시 NULL로 지정해야한다.

이렇게 id를 PRIMARY로 바꾸어 주니

데이터베이스에 데이터가 들어오기 시작했다 ✌️
'web > Backend' 카테고리의 다른 글
[개발 일지] 스프링부트 무작정 따라하기 (0) | 2023.08.17 |
---|