[JPA] @EnableJpaAuditing

개요


@ 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은 엔티티 객체가 생성이 되거나 변경이 되었을때 자동으로 값이 갱신되게 할 수 있다.