study/Spring boot
엉터리 정리 - 엔티티 필드에 기본 값 설정해서 넣기
올스왑
2021. 3. 31. 02:48
엔티티마다 공통된 값이 들어가는 필드에 대해 자동으로 설정하도록 할 수 있다.
먼저 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)
이런 설정을 마치면 따로 값을 설정하지 않아도 엔티티 필드에 기본 값을 넣을 수 있다.
다른 간단한 방법도 있다. 컨트롤러가 요청을 처리할 때, 값을 직접 설정하도록 메소드를 설정해도 기본값을 만들 수 있다.