엔티티마다 공통된 값이 들어가는 필드에 대해 자동으로 설정하도록 할 수 있다.
먼저 config파일을 만든다
@Configuration - 설정 파일임을 선언
@EnableJpaAuditing - 감시를 활성화 시킨다.
public class JpaConfig { }
그 다음 컴포넌트를 만든다. AuditorAware<T> 인터페이스를 구현한다.
@Component
public class LoginUserAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
return Optional.of("AdminServer");
}
}
그리고 설정된 값이 들어갈 엔티티의 필드 위에 어노테이션을 붙인다.
@CreatedBy
private String createdBy; <- "AdminServer"가 들어감
@CreatedDate
private LocalDateTime createdAt; <- 현재시간 들어감
엔티티의 선언부에 감시자 엔티티 리스너를 사용한다는 어노테이션을 붙인다
@EntityListeners(AuditingEntityListener.class)
이런 설정을 마치면 따로 값을 설정하지 않아도 엔티티 필드에 기본 값을 넣을 수 있다.
다른 간단한 방법도 있다. 컨트롤러가 요청을 처리할 때, 값을 직접 설정하도록 메소드를 설정해도 기본값을 만들 수 있다.
'study > Spring boot' 카테고리의 다른 글
엉터리 정리 - 테스트 코드 (0) | 2021.04.05 |
---|---|
REST API 만들기 (0) | 2021.03.31 |
JPA 연관관계 설정하기 (0) | 2021.03.25 |
JPA와 Repository(간단히 CRUD) (0) | 2021.03.25 |
JPA와 Entity 기본 (0) | 2021.03.24 |