Jsr310JpaConverters
🕒 Jsr310JpaConverters
정의
Jsr310JpaConverters는 Spring Data JPA에서java.timeAPI와 기존 SQL 날짜/시간 타입을 변환하기 위한 컨버터 모음이다.LocalDate,LocalDateTime,LocalTime같은 JSR-310 타입을 JPA에서 다룰 수 있게 도와준다.
시간 관련 컬럼을 다룰 때 타입 변환 문제를 줄여주는 보조 도구로 이해하면 좋다.
🧩 역할
java.time타입과 SQL 날짜/시간 타입을 변환한다- JPA에서 날짜/시간 타입 매핑을 쉽게 만든다
- 레거시
java.sql타입과의 호환을 돕는다 - 날짜/시간 변환을 표준화된 방식으로 처리한다
🛠 주요 변환
| 컨버터 | 설명 |
|---|---|
LocalDateConverter |
LocalDate와 java.sql.Date를 변환한다 |
LocalDateTimeConverter |
LocalDateTime과 java.sql.Timestamp를 변환한다 |
LocalTimeConverter |
LocalTime과 java.sql.Time을 변환한다 |
ZonedDateTimeConverter |
ZonedDateTime과 java.sql.Timestamp를 변환한다 |
OffsetDateTimeConverter |
OffsetDateTime과 java.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를 사용 중이라면 변환 책임이 겹치지 않는지 확인해야 한다.
📌 정리
Jsr310JpaConverters는java.time타입과 SQL 날짜/시간 타입 사이의 변환을 돕는 컨버터 모음이다.- JPA에서 날짜/시간 필드를 다룰 때 유용하다.
@Convert나 엔티티 필드 타입 설계와 함께 이해하면 좋다.
댓글남기기