@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class Timestamped {
@CreatedDate
@Column(updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime createdAt;
@LastModifiedDate
@Column
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime modifiedAt;
}
@MappedSuperclass: JPA Entity 클래스들이 해당 추상 클래스를 상속할 경우 createdAt, modifiedAt 처럼 추상 클래스에 선언한 멤버변수를 컬럼으로 인식할 수 있음@EntityListeners(AuditingEntityListner.class): 해당 클래스에 Auditing 기능을 포함시켜줌@CreateDate: Entity 객체가 생성되어 저장될 때 시간이 자동으로 저장됨update = false 옵션을 추가함@LastModifiedDate: 조회한 Entity 객체를 값을 변경할 때 변경된 시간이 자동으로 저장됨@Temporal: 날짜 타입(java.util.Date, java.util.Calender)을 매핑할 때 사용함@SpringBootApplication이 있는 class에 @EnableJpaAuditing 추가!
@EnableJpaAuditing을 추가해야함