본문 바로가기
IT/spring

스프링 @Temporal 어노테이션

by 뉴코딩맨 2023. 7. 3.
스프링 프레임워크에서 사용되는 @Temporal 어노테이션에 대해 알아보겠습니다. @Temporal 어노테이션은 JPA(Java Persistence API)를 기반으로 한 ORM(Object-Relational Mapping) 기술에서 날짜와 시간 데이터를 매핑할 때 사용됩니다.

 

 

@Temporal 어노테이션의 역할

@Temporal 어노테이션은 JPA에서 엔티티 클래스의 필드를 날짜(Date) 또는 시간(Time)으로 매핑할 때 사용됩니다. 이 어노테이션은 필드의 데이터 유형과 데이터베이스 컬럼의 유형 간의 매핑을 지정하는 역할을 합니다.

 

@Temporal 어노테이션 사용 예시

다음은 스프링에서 @Temporal 어노테이션을 사용한 예시입니다.
 
@Entity
@Table(name = "orders")
public class Order {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String customerName;
    
    @Temporal(TemporalType.TIMESTAMP)
    private Date orderDate;
    
    // Getters and setters
}
 
위 예시에서 Order 클래스의 orderDate 필드에 @Temporal 어노테이션이 붙어 있습니다. 이를 통해 orderDate 필드는 날짜와 시간 데이터를 매핑할 때 사용되며, 데이터베이스 컬럼의 유형도 매핑에 따라 지정됩니다. 예를 들어, @Temporal(TemporalType.TIMESTAMP)은 orderDate 필드를 날짜와 시간을 모두 포함하는 타임스탬프로 매핑하는 것을 의미합니다.

 

 

@Temporal 어노테이션의 유형

@Temporal 어노테이션은 다음과 같은 유형을 가지고 있습니다.
  • TemporalType.DATE: 필드를 날짜로 매핑합니다. 시간 정보는 무시됩니다.
  • TemporalType.TIME: 필드를 시간으로 매핑합니다. 날짜 정보는 무시됩니다.
  • TemporalType.TIMESTAMP: 필드를 날짜와 시간을 모두 포함하는 타임스탬프로 매핑합니다.

 

결론

@Temporal 어노테이션은 JPA에서 날짜와 시간 데이터를 매핑할 때 사용됩니다. 이를 통해 엔티티 클래스의 필드를 적절한 데이터베이스 컬럼 유형과 매핑할 수 있으며, 데이터베이스 상의 정확한 데이터 유형을 유지할 수 있습니다.
 
스프링의 @Temporal 어노테이션은 날짜와 시간 데이터를 다룰 때 유용하게 활용할 수 있습니다.
 

댓글