
@EnableJpaAuditing 어노테이션은 Spring Boot 애플리케이션에서 JPA Auditing을 활성화하는 데 사용됩니다. 아직 Config 파일을 작성해 보지 않아서 아래와 같이 SpringApplication 시작점에 어노테이션을 붙여 보았습니다.
@EnableJpaAuditing
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@EnableJpaAuditing 어노테이션을 붙임으로서 Application Context에 AuditingEntityListener가 등록되어, 엔티티의 변경 사항을 감지하고, 관련 필드를 자동으로 업데이트합니다.
이제 MyApplication에서 다루는 엔터티를 아래와 같이 작성하면
@Entity
@EntityListeners(AuditingEntityListener.class)
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
}
@CreatedDate 어노테이션이 붙은 칼럼에 생성일,
@LastModifiedDate 어노테이션이 붙은 칼럼에 마지막 수정일이 자동으로 입력됩니다.
@EntityListeners(AuditingEntityListener.class) 어노테이션을 JPA 엔터티 클래스에 붙이면 해당 엔터티에서 JPA Auditing 기능을 사용할 수 있게 되는 것입니다.
추가로 JPA Auditing을 이용해 아래 데이터들도 자동으로 입력되게 할 수 있습니다.
@CreatedBy: 엔티티의 생성자를 자동으로 기록
@LastModifiedBy: 엔티티의 마지막 수정자를 자동으로 기록