오디팅

엔티티를 생성하거나 변경할 때 사람과 시간을 추적하고 싶으면?

필수로 넣어 주는 것이 좋다.

우선 순수 JPA를 사용해서 해결해 보자.

@MappedSuperclass
public class JPABaseEntity {

	@Column(updatable = false)
	private LocalDateTime createdAt;
	private LocalDateTime updatedAt;

	@PrePersist
	public void prePersist() {
		LocalDateTime now = LocalDateTime.now();
		createdAt = now;
		updatedAt = now;
	}

	@PreUpdate
	public void preUpdate() {
		updatedAt = LocalDateTime.now();
	}
}

스프링 데이터 JPA

@EnableJpaAuditing
@SpringBootApplication
public class DataJpaApplication {

꼭 넣어주자

@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public class BaseEntity {

	@CreatedDate
	@Column(updatable = false)
	LocalDateTime createdAt;

	@LastModifiedDate
	LocalDateTime updatedAt;
}