Spring

Auditing기능을 이용한 등록일,수정일,등록자,수정자 관리

yougeun 2023. 4. 18. 20:07
728x90

1.등록일,수정일 관리

@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
public class BaseTimeEntity {
 @CreatedDate
 @Column(updatable = false)
 private LocalDateTime createdDate;
 @LastModifiedDate
 private LocalDateTime lastModifiedDate;
}

2.등록자,수정자 관리

@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
public class BaseEntity extends BaseTimeEntity {
 @CreatedBy
 @Column(updatable = false)
 private String createdBy;
 @LastModifiedBy
 private String lastModifiedBy;
}

대부분의 엔티티는 등록시간,수정시간이 필요하지만  등록자,수정자는 필요없는 경우가 생기므로 필요에 따라 원하는 타입을 선택해서 상속한다.

3.등록자,수정자를 처리해주는 Bean 등록

@Bean
public AuditorAware<String> auditorProvider() {
 return () -> Optional.of(UUID.randomUUID().toString());
}

필요에 따라 세션 정보나 ,Spring Security의 로그인정보에서 ID를 받아서 등록한다.

728x90