본문 바로가기
Springboot

생성시간, 수정시간 자동화(JPA Auditing)

by hyerann 2019. 10. 22.



1. BaseTimeEntity 클래스 생성

kotlin 코드

@MappedSuperclass
@EntityListeners(AuditingEntityListener::class)
abstract class BaseTimeEntity(@CreatedDate var createdDate: LocalDateTime? = null,
						@LastModifiedDate var modifiedDate: LocalDateTime? = null)

java 코드

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
	@CreatedDate
	private LocalDateTime createdDate;
	@LastModifiedDate
	private LocalDateTime modifiedDate;
}

모든 Entity들의 상위 클래스가 되어 Entity들의 createdDate, modifiedDate를 자동으로 관리

  • @MappedSuperclass
    • JPA Entity 클래스들이 BaseTimeEntity를 상속할 경우 필드들(createdDate, modifiedDate)도 컬럼으로 인식하도록 한다.
  • @EntityListeners(AuditingEntityListener.class)
    • BaseTimeEntity 클래스에 Auditing 기능을 포함시킨다.
  • @CreatedDate
    • Entity가 생성되어 저장될 때 시간이 자동 저장된다.
  • @LastModifiedDate
    • 조회한 Entity의 값을 변경할 때 시간이 자동 저장된다.

2. Domain 클래스가 BaseTimeEntity를 상속받도록 변경

3. Application 클래스에 @EnableJpaAuditing(JPA Auditing 활성화 어노테이션) 추가

'Springboot' 카테고리의 다른 글

Spring Validation Annotation 총정리  (0) 2020.01.14
HTTP Method - PUT, PATCH 차이점  (0) 2019.10.22
Jackson 라이브러리  (0) 2019.10.22
HTTP 클라이언트 HTTPie  (0) 2019.07.26
Spring Boot에 Swagger 적용하기  (7) 2019.07.09

댓글