본문 바로가기
IT/Java

Entity 에서 date관련 annotation

by 성준하이 2022. 12. 11.
반응형

스프링에서 제공하는 어노테이션 중에 아래와 같은 어노테이션이 있다.

 

import org.springframework.data.annotation.CreatedDate;

import org.springframework.data.annotation.LastModifiedDate;

import org.springframework.data.jpa.domain.support.AuditingEntityListener;

 

만약 entity 에서 새로운 데이터를 생성할때 createdDate 와 LastModifyDate라는 컬럼이 있다고 가정해 본다면

결국 LocalDate.now() 라는 값으로 set을 해주며 builder를 하고 
다양한 방법으로 modify 할때 LastModifyDate 컬럼을 현재 시간으로 set 하고 저장을 날리게 된다.

 

물론 결과는 달라질 것이 없지만 코드 자체에 굳이 한줄이 더 들어가야한다.

바뀌는 값들이 많다면 해당 메서드 마다 해당 컬럼을 변경해주는 로직을 한줄씩 더 작성을 해야한다.

 

그럴 경우에 사용할수 있는 어노테이션이 바로 

CreatedDate

LastModifiedDate

이다.

 

이름만 봐도 문맥을 이해하겠지만 간단히 코드를 보여주면 다음과 같다.

@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
     @CreatedDate
     private LocalDateTime createdDate;

     @LastModifiedDate
     private LocalDateTime modifiedDate;

     public LocalDateTime getCreatedDate() {
          return createdDate;
     }
     public LocalDateTime getModifiedDate() {
          return modifiedDate;
     }
}

참고로 @EntityListeners(AuditingEntityListener.class) 는 BaseTimeEntiy 클래스에 Auditing 기능을 포함시킨다.

반응형

'IT > Java' 카테고리의 다른 글

이클립스 내에서 문자열 일괄 변경  (19) 2022.12.14
isNew method  (22) 2022.12.12
LinkedHashMap  (31) 2022.12.09
Flush에 대해  (31) 2022.12.08
JPA query Keyword (repository)  (34) 2022.12.06

댓글