엔티티를 생성/수정할 때, 시간을 측정해야하는 경우가 많은데,
이 기능을 엔티티마다 함수로 만들어주기는 번거롭다.
=> JPA Auditing을 사용하여 자동화해줄 수 있다.
1. 도메인에 BaseTimeEntity 엔티티를 새로 만들어준다
@Getter
@MappedSuperclass // 해당 클래스를 상속받을 경우, 해당 클래스의 필드들도 컬럼으로 인식함
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {
@CreatedDate // Entity 최초 생성될 때 시간 자동 저장
private LocalDateTime createdDate;
@LastModifiedDate // 수정될 때 시간 자동 저장
private LocalDateTime modifiedDate;
}
2. 해당 엔티티를 상속받는 엔티티들은 생성/수정 시 시간이 자동으로 저장된다.
public class Users extends BaseTimeEntity
3. @EnableJpaAuditing을 추가해주어 Jpa Auditing을 활성화해준다.
(@SpringBootApplication, 즉 스프링부트를 시작하는 클래스에 추가해주기)
@EnableJpaAuditing // JpaAuditing 활성화해주기
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Reference
도서 <스프링부트와 aws로 혼자 구현하는 웹서비스>
'Back-end > JPA' 카테고리의 다른 글
| [JPA/김영한] 값 타입 (0) | 2022.06.23 |
|---|---|
| [JPA/김영한] 영속성 전이, 고아객체 (0) | 2022.06.23 |
| [JPA/김영한] 프록시와 지연로딩 (0) | 2022.06.23 |
| [JPA/김영한] 고급 매핑 (0) | 2022.06.23 |
| [JPA/김영한] 여러가지 연관관계 매핑 (0) | 2022.06.23 |