@ EnableJpaAuditing 은 Spring Data JPA 에서 제공하는 어노테이션으로, 엔티티의 생성 및 수정 시각을 자동으로 기록하고 싶을때 사용된다.
예를들어 데이터를 생성하거나 수정할 때, 누가, 언제 했는지를 알기 위해 보통 아래와 같은 필드를 각 테이블에 같이 포함시켜 테이블을 생성한다.
이러한 컬럼에 대해 기입하는 가장 간단한 방법은 setter 를 사용해 직접 값을 할당하는 것이다.
@Table(name = members)
@Entity
public class Member {
...
@Column
private Datetime createdAt;
@Column
private Datetime modifiedAt;
@Column
private String createdBy;
@Column
private String modifiedBy;
public Member(..., String createdBy, String modifiedBy) {
...
this.createdAt = Datetime.now();
this.modifiedAt = Datetime.now();
this.createdBy = createdBy;
this.modifiedBy = modifiedBy;
}
public modify(..., String modifiedBy) {
...
this.modifiedAt = Datetime.now();
this.modifiedBy = modifiedBy;
}
}
하지만 매번 이렇게 코드를 작성하는 것은 귀찮고 번거롭다.
@EnableJpaAuditing은 엔티티 객체가 생성이 되거나 변경이 되었을때 자동으로 값이 갱신되게 할 수 있다.