스프링 부트 3.x 업그레이드 후 하이버네이트 6.5.5 버전에서 시간 관련 버그 발생
LocalTime 타입 처리 과정에서 음수 나노초 오류 발생, 배송 앱 로그인 불가
Converter 구현을 통해 임시 해결, 하이버네이트 버전 업그레이드로 근본적 해결 예정
스프링 부트 업그레이드 후 하이버네이트 버전 변경으로 인해 LocalTime 처리 방식이 변경되었다. 구체적으로, Time 객체 생성 시 나노초를 반영하면서 DB 저장/조회 과정에 차이가 발생했다. 따라서, 타임존 설정에 따라 음수 나노초 오류가 발생하게 되었다.
하이버네이트 5.6.5 버전은 LocalTime을 Time 객체로 변환 시 나노초를 무시했다. 반면, 6.5.5 버전은 나노초를 반영하여 밀리초 계산에 사용했다. 따라서, 에서 0~8시 사이에 가 발생, 을 유발했다.
버그 수정 전까지 LocalTimeConverter를 구현하여 나노초 제거를 통해 문제를 해결했다. 구체적으로, convertToDatabaseColumn과 convertToEntityAttribute 메서드를 사용하여 나노초를 truncate했다. 결과적으로, 데이터 무결성을 유지하면서 서비스 안정성을 확보했다.