본문 바로가기
프로젝트/DailycluB

Auditing 기능 적용

by 넬준 2022. 8. 31.

 

프로젝트에 쓰이는 모든 엔티티에 생성일자시간, 마지막 수정일자시간 컬럼이 필요하다.

그래서 이를 추상 클래스에 필드로 선언한 후 이를 상속하도록 했다.

Spring Data가 제공하는 Auditing 기능을 활용했다.

 

Auditable 클래스

@Getter
//테이블을 매핑하지 않고, 하위 클래스에 매핑 정보만 제공하기 위해
@MappedSuperclass 
//Entity가 DB에 저장되기 전후에 커스텀 로직을 선언!
//AuditingEntityListener 클래스 내부 @CreatedDate, @LastModifiedDate 등을 탐색해 자동 업데이트
@EntityListeners(AuditingEntityListener.class)
public abstract class Auditable {

    @CreatedDate //생성일자시간
    @Column(nullable = false)
    private LocalDateTime createdDate;
 
    @LastModifiedDate //최종수정일자시간
    private LocalDateTime modifiedDate;
}

 

실행 클래스

@EnableJpaAuditing //Auditing 기능 활성화
@SpringBootApplication
public class DailyclubApplication {
	public static void main(String[] args) {
		SpringApplication.run(DailyclubApplication.class, args);
	}
}

 

Entity 클래스

@Getter
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Program extends Auditable {

...

}

 

CREATED_DATE와 MODIFIED_DATE 컬럼이 잘 들어가는 것을 확인할 수 있다.

 


참고

https://do-study.tistory.com/104

댓글