JpaAuditing이란 엔티티의 생성 시각, 수정 시각을 자동으로 기록해주는 것
@EnableJpaAuditing 어노테이션
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
@EnableJpaAuditing
public class PlayheavenApplication {
public static void main(String[] args) {
SpringApplication.run(PlayheavenApplication.class, args);
}
}
해당 어노테이션으로 Auditing 기능을 활성화 해주어야 하며, Application 클래스 또는 @Configuration을 붙인 클래스 위에 선언해주어야 함
Auditing에 필요한 어노테이션
@MappedSuperclass
- 공통 매핑 정보가 필요할 때, 부모 클래스에 선언된 필드를 상속받는 클래스에서 그대로 사용할 때 사용
- 부모 클래스에 대한 테이블은 별도로 생성되지 않음
@EntityListeners
- Auditing기능을 사용할 클래스 위에 선언해주고, 이 클래스는 Spring Data JPA에서 제공하는 이벤트 리스너로 엔티티의 영속, 수정 이벤트를 감지하는 역할을 수행
- 해당 어노테이션은 엔티티의 변화를 감지하여 엔티티와 매핑된 테이블의 데이터를 조작
- 이 어노테이션의 파라미터에 이벤트 리스너인 AuditingEntityListener 클래스를 넣어줌
@CreateDate
- 생성일을 기록하기 위해 LocalDateTime 타입의 필드에 @CreateDate 를 적용
- 생성일자는 수정되어서는 안되므로 @Column(updatable = false)를 사용하여 수정이 되지 않도록 제어
@LastModifiedDate
- 수정일을 기록하기 위해 LocalDateTime 타입의 필드에 @LastModifiedDate 를 적용
- 엔티티가 수정됨을 감지할 경우 그 시점을 해당 필드에 기록
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public class BaseTime {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createAt;
@LastModifiedDate
private LocalDateTime modifyAt;
}
@Entity
@Getter
public class Member extends BaseTime {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String email;
private String password;
private String name;
private String phone;
private boolean isDeleted;
}
'Language > Spring' 카테고리의 다른 글
[Spring Boot] 이메일 인증 코드를 이용한 회원 가입 (0) | 2024.08.13 |
---|---|
[Spring Boot] 구글 이메일 인증 코드 발급 구현 (0) | 2024.08.13 |
BeanFactory, ApplicationContext (0) | 2024.08.10 |
의존성 주입(DI), 제어의 역전(IoC) (0) | 2024.08.10 |
Spring Framework와 Spring Boot Framework (0) | 2024.08.10 |