Programing/JPA

JPA Date or Timestamp 저장 시 유용한 어노테이션

리커니 2023. 5. 16. 09:16
반응형

JPA Date or Timestamp 저장 시 유용한 어노테이션에 대해 알아보겠습니다.

 

1. @Temporal

@Temporal 은 날짜, 시간 타입 매핑에 필수 어노테이션 입니다.

 

TemporalType.DATE, TemporalType.TIME, TemporalType.TIMESTAMP 3가지가 있으며 각각의 컬럼 타입에 따라 설정하시면 됩니다.

 

2. @CreationTimestamp

신규저장 시 자동으로 현재 시간을 넣어주는 어노테이션 입니다.

@Embeddable @EmbededId의 경우 정상동작 하지 않음에 주의 해야 합니다.

엔티티 클래스 필드에만 적용합니다.

 

3. @UpdateTimestamp

@CreationTimestamp와 비슷하게 수정 시 현재 시간을 자동으로 업데이트 해주는데 사용합니다.

마찮가지로 엔티티 클래스 필드에만 적용합니다.

 

4. 예시

@Entity
@Table(name = "USER", schema = "스키마")
public class USER {
    @Column(name = "user_id")
    @Id
    private String userId;
    
    @Column(name = "user_nm")
    private String userNm;
    
    @Column(name = "crt_dt")
    @Temporal(TemporalType.TIMESTAMP)
    @CreationTimestamp
    private Date crtDt;
    
    @Column(name = "udt_dt")
    @Temporal(TemporalType.TIMESTAMP)
    @UpdateTimestamp
    private Date udtDt;
}
반응형