반응형
최근 JPA를 이용하여 진행하고 있는 토이 프로젝트가 있는데 Entity의 생성시간을 자동으로 캐치해서 DB에 기록해주는 @CreatedDate 어노테이션이 제대로 동작하지 않는 문제가 생겼다.
보통 JPA를 사용하면 아래와 같은 entity를 생성하고 생성 시점이나 수정 시점을 자동으로 기록하고 싶은 entity는 해당 entity를 상속하게 하여 간편하게 구현할 수 있다. 그런데 생성시점을 자동 기록해주는 @CreatedDate를 사용한 createdDt 필드가 계속해서 null로 들어가는 문제가 발생했다.
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
@CreatedDate
private LocalDateTime createdDt;
@LastModifiedDate
private LocalDateTime updatedDt;
}
인터넷을 찾아보니 현재 시간을 자동 기록하기 위해 BaseTimeEntity 위에 @EntityListeners(AuditingEntityListener.class) 를 사용하는데 이를 활성화시켜주지 않아서 null 값이 들어가던 것이었다.
@EnableJpaAuditing
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
위와 같이 해당 application에 @EnableJpaAuditing 어노테이션을 붙여주어 활성화 시켜주면 아래와 같이 현재 시간이 제대로 들어가는 것을 확인할 수 있다.
'TIL' 카테고리의 다른 글
[Java] 향상된 try catch문: try-with-resources (0) | 2024.09.21 |
---|---|
프로메테우스란? (0) | 2023.03.01 |
[Java] Spring 다중 profile 설정하기 (0) | 2021.06.09 |
[Java] cron 시간 설정 시 에러 발생 (0) | 2021.06.02 |
[Java] List.sublist의 사용법과 주의할 점 (0) | 2021.05.31 |
댓글