[Spring] Mysql TIMESPAMP type에 Datatime 값 전달하기

최성민·2021년 7월 31일
0

Spring

목록 보기
8/9

문제상황

The error may involve defaultParameterMap
The error occurred while setting parameters
SQL: insert articles (articleId, authorId, slug, title, description, body, createdAt, updatedAt) value ( ?, ?, ?, ?, ?, ?, ?, ? )
Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '18:42:44.363251' for column 'createdAt' at row 1
; Data truncation: Incorrect datetime value: '18:42:44.363251' for column 'createdAt' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '18:42:44.363251' for column 'createdAt' at row 1] with root cause

문제원인

LocalTime 클래스 사용하여 DB에 대한 CRUD 작업시 MySQL에 파라메터로 전달할때, String 변환하여 전달해야함. 그 과정이 없을 경우 위와 같은 오류가 발생함

해결방법

DB에 Timespamp에 전달될려면 "yyyy-MM-DD:HH:mm:ss" 형태의 String을 전달

위와 같이 했더니 Unsupported field: YearOfEra 에러가 발생했다.

LocalTime에는 Year의 정보가 없기 때문이다.

Year의 정보가 있는 LocalDateTime 클래스를 사용해서 구현했다.

구현 결과 아래와 같이 정상적으로 들어가는 것을 확인함.

profile
공부합시다

0개의 댓글