✏️ Audit이란
- DB를 관리하기 편하도록 DB에 값을 넣을 때, 항상 특정 데이터가 포함되도록 하는 것
- 추후 DB에서의 문제점을 추적하는데 많은 도움이 됨
- 주로 사용하는 데이터
- 최초 등록 시간 (
@CreatedDate
)
- 마지막 수정 시간 (
@LastModifiedDate
)
- 최초 등록한 사람 (
@CreatedBy
)
- 마지막 수정한 사람 (
@ModifiedBy
)
1️⃣ Base Time Entity 생성
![](https://velog.velcdn.com/images/hyejuc/post/6aa69bbb-4c10-4c67-9b14-db8b620670d6/image.png)
@Getter
- 모든 멤버 변수에 대해 get 메서드를 생성해주는 롬복 어노테이션
@MappedSuperClass
- 이 어노테이션이 있는 클래스는 엔티티로 사용되지 않음
- 다른 엔티티에서 이 엔티티의 속성을 상속받아 속성만 사용할 수 있도록 도와줌
- BaseEntity를 상속한 엔티티들이 BaseEntity에 있는 멤버 변수들을 모두 컬럼으로 인식되도록 해줌
@EntityListners(AuditingEntityListener.class)
- Auditing 기능을 사용하겠다는 의미, 자동으로 값을 매핑
- 이 어노테이션 아래에 있는 필드의 특정 Audit 컬럼에 이벤트가 있을 대마다 Audit이 반영될 준비를 해줌
2️⃣ Base Time Entity 상속받기
![](https://velog.velcdn.com/images/hyejuc/post/74ad4eef-5e38-4a8c-a925-244ee19dba16/image.png)
- 엔티티가 BaseTimeEntity를 상속받도록 적용
3️⃣ 최종 적용
![](https://velog.velcdn.com/images/hyejuc/post/95dc43bb-608d-4d23-8513-00aeee800e90/image.png)
@EnableJpaAuditing
을 통해 최종 적용