하이버네이트의 시간은 거꾸로 간다
6
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

하이버네이트의 시간 관련 버그 해결기

이 게시물은 스프링부트 3.x 버전 업그레이드 과정에서 발생한 하이버네이트 관련 나노초 시간 처리 버그를 분석하고 해결한 경험을 다룹니다.

문제 발생 배경과 원인 분석

  • 스프링부트와 하이버네이트 버전 업그레이드 후, 일부 시간 데이터 조회 시 음수 나노초 값으로 인한 예외 발생
  • 자바 버전 업그레이드(11 ➡️ 17)는 원인이 아니며, 하이버네이트 버전 변경(5.6.5 ➡️ 6.5.5)에서 LocalTime 처리 방식 변경이 주요 원인
  • 하이버네이트 6.x에서 LocalTime의 나노초를 밀리초로 반영하여 DB 저장 시 정상이나, 조회 시 타임존(KST) 영향으로 음수 나노초 발생

해결 방법

  • 아직 공식 수정 버전은 없으나, 임시로 LocalTime의 나노초를 제거하는 Converter를 적용해 문제를 우회

느낀 점

  • 큰 버전 업그레이드 시 인수 테스트와 통합 테스트의 중요성 재인식
  • 가설 검증을 통한 체계적인 디버깅의 필요성 강조

연관 게시글