๋ฌธ์ ์ํฉ
Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'author' cannot be null
๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ์ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด์, ํฌ์คํธ๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ๋ฉด ์๊พธ ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ฝ๋ ์์ผ๋ก๋, ํ๋ก ํธ๋จ์์ ์ ๋๋ก author์ ๋ด์ฉ์ ๊ธฐ์ ํด์ ์ ๋ฌํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์์ธ์ ํ์ ํ๊ธฐ ํ๋ค์๋ค.
์์ธ ๋ถ์
Controller์ @PostMapping ๋ฉ์๋์์ @RequestBody
์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ์ค๋ฅ์๋ค.
@PostMapping("/post")
public BlogPost createPost(BlogPost post) {
return service.createPost(post);
}
์ ์ฝ๋์์ BlogPost ๊ฐ์ฒด๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ JSON ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ํ์ง๋ง @RequestBody
์ด๋
ธํ
์ด์
์ด ์์ผ๋ฉด, Spring์ ์์ฒญ ๋ณธ๋ฌธ์ JSON ๊ฐ์ฒด๋ก ๋ณํํ์ง ์๊ณ ๊ธฐ๋ณธ ์์ฑ์์ setter ๋ฉ์๋๋ฅผ ํตํด ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ด๋ก ์ธํด author ๋ฑ์ ํ๋๊ฐ ์ฑ์์ง์ง ์๊ณ NULL ๊ฐ์ ๊ฐ์ง๊ฒ ๋ ๊ฒ์ด๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
@RequestBody
์ด๋
ธํ
์ด์
์ด ๋น ์ง ๊ณณ์ ํด๋น ์ด๋
ธํ
์ด์
์ ์ถ๊ฐํด์ค์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋งคํํด์ฃผ๋ฉด ๋๋ค.
@PostMapping("/post")
public BlogPost createPost(@RequestBody BlogPost post) {
return service.createPost(post);
}