JPA Auding : 시간에 대해서 자동으로 값을 넣어주는 기능
@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(AuditingEntityListener.class)
- 해당 클래스에 Auditing 기능을 포함시켜준다.
- @CreatedDate
- Entity 객체가 생성되어 저장될 때 시간이 자동으로 저장된다.
- 최초 생성 시간이 저장되고 그 이후에는 수정되면 안되기 때문에 updatable = false 옵션을 추가한다.
- @LastModifiedDate
- 조회한 Entity 객체의 값을 변경할 때 변경된 시간이 자동으로 저장된다.
- 처음 생성 시간이 저장된 이후 변경이 일어날 때마다 해당 변경시간으로 업데이트된다.
- @Temporal
- 날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용한다.
- DB에는 Date(날짜), Time(시간), Timestamp(날짜와 시간)라는 세 가지 타입이 별도로 존재한다.
- DATE : ex) 2023-01-01
- TIME : ex) 20:21:14
- TIMESTAMP : ex) 2023-01-01 20:22:38.771000
'Java & Spring > Spring' 카테고리의 다른 글
46일차 - 테스트 코드 애노테이션 (2) | 2024.09.10 |
---|---|
JWT 구현 및 사용 (0) | 2024.09.09 |
31일차 - Spring강의(Entity 연관 관계) (0) | 2024.08.27 |
29일차 - Spring강의(인증과 인가) (0) | 2024.08.23 |
28일차 - Spring강의(Bean 수동 등록, Type중복 시 Bean 주입) (0) | 2024.08.22 |