
엔티티마다 생성일/수정일 컬럼을 매번 넣기 귀찮을 때, 공통 베이스 클래스를 만들어두면 편하다.
@MappedSuperclass + @CreatedDate / @LastModifiedDate를 쓰면 저장/수정 시점에 시간이 자동으로 채워진다.
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class) // Auditing 동작 스위치
public abstract class BaseTimeEntity {
@CreatedDate
@Column(name = "create_dt", nullable = false, updatable = false)
private LocalDateTime createDt;
@LastModifiedDate
@Column(name = "update_dt")
private LocalDateTime updateDt;
}
엔티티에서 상속만 하면, 해당 엔티티 테이블에 create_dt, update_dt 컬럼이 포함된다.
@Entity
public class Lesson extends BaseTimeEntity {
@Id @GeneratedValue
private Long lessonId;
// ...
}
Spring Boot에서 Auditing이 자동으로 돌려면 설정 클래스(또는 메인 클래스)에 아래를 추가해야 한다.
@EnableJpaAuditing
@SpringBootApplication
public class MuzinApplication { }
혹은,
@Configuration
@EnableJpaAuditing
public class JpaConfig { }