2-1 @SpringBootApplication이 있는 class에 @EnableJpaAuditing 추가!
@EnableJpaAuditing // JPA Auditing 기능을 사용하겠다는 정보를 전달
@SpringBootApplication
public class HhztCloneApplication {
2-2 TimeStamped 추상클래스
@Getter
@MappedSuperclass // JPA Entity 클래스들이 해당 추상 클래스를 상속할 경우 createdAt, modifiedAt 처럼 추상 클래스에 선언한 멤버변수를 컬럼으로 인식
@EntityListeners(AuditingEntityListener.class) // 해당 클래스에 Auditing 기능을 포함시켜 줌
public abstract class Timestamped {
@CreatedDate // Entity 객체가 생성되어 저장될 때 시간이 자동으로 저장
@Column(updatable = false) // 최초 생성 시간이 저장되고 그 이후에는 수정되면 안되기 때문에 옵션을 추가
@Temporal(TemporalType.TIMESTAMP) // 날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
private LocalDateTime createdAt;
@LastModifiedDate // 조회한 Entity 객체의 값을 변경할 때 변경된 시간이 자동으로 저장
@Column
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime modifiedAt;
}
예를 들어,
1) findAllByOrderByModifiedAtDesc
2)
List<Memo> findAllByUsername(String username);