@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
@MappedSuperclass
: JPA Entity 클래스들이 해당 클래스를 상속할 경우 필드들도 칼럼으로 인식@EntityListener(AuditionEntityListener.class)
@CreatedDate
: Entity가 생성되어 저장될 때 시간이 자동 저장@Last<odifiedDate
: 조회한 Entity의 값을 변경할 때 시간이 자동으로 저장그 이후)
1. BaseTimeEntity 클래스를 적용할 Entity에 상속받도록 적용
2. Application 클래스에 활성화 어노테이션 추가
@EnableJpaAuditing
@Test
public void BaseTimeEntity_등록() {
//given
LocalDateTime now = LocalDateTime.of(2022, 6, 4, 0, 0 ,0);
postsRepository.save(Posts.builder()
.title("title")
.content("content")
.author("author")
.build());
//when
List<Posts> postsList = postsRepository.findAll();
//then
Posts posts = postsList.get(0);
System.out.println(">>>>>>>>>> createDate=" + posts.getCreatedDate()+", modifiedDate=" + posts.getModifiedDate());
assertThat(posts.getCreatedDate()).isAfter(now);
assertThat(posts.getModifiedDate()).isAfter(now);
}
이동욱, 스프링 부트와 AWS로 혼자 구현하는 웹 서비스