
92
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
Spring JDBC 컨버터 문제와 해결책
이 게시물은 Spring Data JDBC에서 LocalDate 타입의 커스텀 컨버터가 예상대로 동작하지 않는 문제를 다룹니다.문제 원인
- Spring JDBC의 StatementCreatorUtils.setParameterValue() 메서드가 LocalDate와 LocalDateTime을 특별히 처리하며 커스텀 컨버터를 무시함
- LocalDate는 JDBC 드라이버에 DATE 타입으로 전달되어 VARCHAR 컬럼에 저장 시 오류 발생
- LocalDateTime은 TIMESTAMP 타입으로 전달되어 Oracle JDBC 드라이버의 자동 변환으로 정상 저장된 것처럼 보임
해결책
- LocalDate를 감싸는 CustomLocalDate 래퍼 클래스를 만들어 커스텀 컨버터가 정상 적용되도록 우회
- 이 방법은 타입 안정성을 유지하면서 DB 저장 형식을 완벽히 제어 가능
- 양방향 컨버터 등록과 테스트 코드 작성으로 완성도 강화
실무 주의사항
- DB 벤더별 JDBC 드라이버 동작 차이 고려
- 충분한 테스트 필수