2023. 1. 20. 01:11ใ๐ TIL
โก๏ธ ์ํฉ
>>> ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Zero date value prohibited
์๋ฐ ์์ค์์ mysql ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ๋ฐ์ํ ์์ธ.
Zero date ๋ผ๋ ๋ก๊ทธ์์ ์ถ์ธก์ปจ๋ ํด๋น ํ ์ด๋ธ์ ๋ ์ง ์ปฌ๋ผ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
๐ ์์ธ
์๋ ํ ์ด๋ธ์์ ๋ณด๋ฏ updated_at ์ปฌ๋ผ์ ๊ฐ์ด ๋ชจ๋ zero date(0000-00-00 00:00:00)๋ก ์ ์ฅ๋์ด ์๋ค.
์๋ง null ๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ๊ณต๋ฐฑ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด๋ ๊ฒ ๊ฐ๋ค.

Mysql ์ 0000-00-00 00:00:00
ํ์ (= zero_date) ์ผ๋ก ๋ ์ง๋ฅผ ์ ์ฅํ ์ ์์ง๋ง, (์ด๊ฒ ์ ์์ ์ธ date ๋ ์๋)
๋ฌธ์ ๋ ์๋ฐ ์์ค(java.sql.Date)๊ฐ ํํํ ์ ์๋ ๊ฐ์ด ์๋๊ธฐ ๋๋ฌธ์ ์์ธ๊ฐ ๋ฐ์ํ๋ค.
โ ํด๊ฒฐ
2๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์๋๋ฐ
1) ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ zero_date ๋ฅผ ์์ ๋ฒ๋ฆฌ๋ ๊ฒ,
2) ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ zero_date ๋ฅผ null ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค.
1) ๋ด ์ํฉ์์๋ updated_at์ ๊ฐ์ created_at ์ ๊ฐ์ผ๋ก ์์ด์ณ๋ ๋ฌด๊ดํ๊ธฐ์, zero_date ๋ฅผ ๋ชจ๋ created_at ๊ฐ ์ผ๋ก ๋ณ๊ฒฝ์์ผฐ๋ค.
2) ํ์ง๋ง ๋ฌด์์ created_at ์ผ๋ก ์์ด์น ์ ์๋ ์ํฉ์ด๋ผ๋ฉด, jdbc-url ๋ค์ zeroDateTimeBehavior=convertToNull ์ต์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
>>> jdbc:mysql://{host}/{db}?zeroDateTimeBehavior=convertToNull