[JPA] @CreatedDate,@CreationTimestamp 차이와 사용법

조정원·2025년 4월 16일

@CreatedDate ,@CreationTimestamp는 자동으로 입력한 시간을 컬럼에 저장해주는 역할을 한다

@CreatedDate는 자바 애플리케이션의 시간을 기준으로 적용이 되고 Spring Data JPA에서 제공된다
@CreationTimestamp은 db 서버의 현재 시간을 사용을 하고 Hibernate에서 제공이 된다

  • @CreatedDate 사용법
     @Entity
     @EntityListeners(AuditingEntityListener.class)
    public class User {
        @Id
        @GeneratedValue
        private Long id; 
        @CreatedDate
        @Column(updatable = false)
        private LocalDateTime createdAt;
    }

1.Configuration 클래스에 @EnableJpaAuditing 선언

@Configuration
@EnableJpaAuditing  
public class JpaConfig {
}

2.메인 애플리케이션 클래스 @EnableJpaAuditing 선언

@SpringBootApplication
@EnableJpaAuditing
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

위와 같은 방법으로 엔티티 클래스에 @EntityListeners(AuditingEntityListener.class) 을 선언하고 createdAt 컬럼에 @CreatedDate 선언 후 위와 같이 @EnableJpaAuditing을 메인 애플리케이션 클래스 혹은 config클래스에 선언을 해줘야 된다

  • @CreationTimestamp 사용법
 @Entity
public class User {
    @Id
    @GeneratedValue
    private Long id;
    @CreationTimestamp
    @Column(updatable = false)
    private Timestamp createdAt;
}

위와 같은 방법으로 createdAt컬럼에 @CreationTimestamp를 선언해주면 된다

0개의 댓글