문제 발생
@Entity
public class Entity {
@CreatedDate
private LocalDateTime createdAt;
}
위와 같은 예로 테이블에 INSERT 할 때 @CreatedDate를 사용하여 자동으로 현재 시간을 주입하려고 했다.
하지만 INSERT 된 후의 테이블을 확인해 보니 현재 시간이 null 로 들어가고 있었다.
원인 분석
@CreateDate를 사용하여 현재 시간을 자동으로 가져오기 위해서 Entity에 `@EntityListeners(AuditingEntityListener.class)`, Application에 `@EnableJpaAuditing` 어노테이션을 붙여 활성화시켜줘야 한다.
문제 해결
@Entity
@EntityListeners(AuditingEntityListener.class)
public class Entity {
@CreatedDate
private LocalDateTime createdAt;
}
@EnableJpaAuditing
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
위와 같은 예처럼 `@EntityListeners(AuditingEntityListener.class)`와 `@EnableJpaAuditing`를 추가하면 @CreateDate로 현재 시간을 자동으로 가져와서 테이블에 INSERT 할 수 있다.