[Spring] JPA Auditing

Auditing

JPA를 사용할 때 여러 entity에 반복적으로 들어가는 attribute가 있습니다. 데이터의 생성시간/생성주체/수정시간/수정주체 등의 정보는 필수적으로 그리고 공통적으로 관리되는 정보입니다. 하지만 이 값을 매번 직접 입력하는 것은 많이 불편합니다.

적용 방법

controller, service와 같은 레벨의 디렉토리에서 component와 config 디렉토리를 생성합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//component/LoginUserAuditorAware
@Configuration
public class LoginUserAuditorAware implements AuditorAware<String> {

    @Override
    public Optional<String> getCurrentAuditor() {
        return Optional.of("AdminServer");
    }
}
// config/JpaConfig
@Configuration
@EnableJpaAuditing
public class JpaConfig {
}      
//model/entity/User
@EntityListeners(AuditingEntityListener.class)
public class User {
    @CreatedDate
    private LocalDateTime createdAt;
    @CreatedBy
    private String createdBy;
    @LastModifiedDate
    private LocalDateTime updatedAt;
    @LastModifiedBy
    private String updatedBy;
}

Reference

Leave a comment