🕒 Jsr310JpaConverters

정의

Jsr310JpaConvertersSpring Data JPA에서 java.time API와 기존 SQL 날짜/시간 타입을 변환하기 위한 컨버터 모음이다. LocalDate, LocalDateTime, LocalTime 같은 JSR-310 타입을 JPA에서 다룰 수 있게 도와준다.

시간 관련 컬럼을 다룰 때 타입 변환 문제를 줄여주는 보조 도구로 이해하면 좋다.

🧩 역할

  • java.time 타입과 SQL 날짜/시간 타입을 변환한다
  • JPA에서 날짜/시간 타입 매핑을 쉽게 만든다
  • 레거시 java.sql 타입과의 호환을 돕는다
  • 날짜/시간 변환을 표준화된 방식으로 처리한다

🛠 주요 변환

컨버터 설명
LocalDateConverter LocalDatejava.sql.Date를 변환한다
LocalDateTimeConverter LocalDateTimejava.sql.Timestamp를 변환한다
LocalTimeConverter LocalTimejava.sql.Time을 변환한다
ZonedDateTimeConverter ZonedDateTimejava.sql.Timestamp를 변환한다
OffsetDateTimeConverter OffsetDateTimejava.sql.Timestamp를 변환한다

🛠 사용 예시

@Entity
public class UserHistory {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private LocalDateTime createdAt;
}

위처럼 java.time 타입을 엔티티 필드로 사용하면 JPA가 적절한 방식으로 처리한다.

변환이 필요한 경우

  • 프로젝트에서 별도 타입 변환이 필요하면 @Convert와 사용자 정의 컨버터를 함께 고려할 수 있다.
  • 기본적인 java.time 타입은 대부분 별도 변환 없이도 사용 가능하다.

⚠️ 주의사항

  • Spring Boot 환경에서는 보통 기본적으로 날짜/시간 타입 처리가 잘 지원된다.
  • 이 컨버터들은 직접 비즈니스 로직에서 쓰기보다 JPA 매핑 보조 용도로 보는 편이 좋다.
  • java.time 타입과 java.sql 타입의 역할을 혼동하지 않는 것이 중요하다.
  • 프로젝트에서 이미 @Convert를 사용 중이라면 변환 책임이 겹치지 않는지 확인해야 한다.

📌 정리

  • Jsr310JpaConvertersjava.time 타입과 SQL 날짜/시간 타입 사이의 변환을 돕는 컨버터 모음이다.
  • JPA에서 날짜/시간 필드를 다룰 때 유용하다.
  • @Convert나 엔티티 필드 타입 설계와 함께 이해하면 좋다.

연결문서

태그: ,

카테고리:

업데이트:

댓글남기기