티스토리 뷰

활동/교육과정 중 기록

200319 Spring Boot

Stolen Moments 2020. 3. 19. 12:34

Spring Boot




스프링 부트와 AWS로 혼자 구현하는 웹 서비스




3.5 JPA Auditing 으로 생성시간/수정시간 자동화하기


- LocalDate 사용


domain 에 BaseTimeEntity.java 만들기


package com.springboot.domain;

import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {

@CreatedDate
private LocalDateTime createdDate;

@LastModifiedDate
private LocalDateTime modifiedDate;
}


@MappedSuperclass : JPA Entity 클래스들이 BaseTimeEntity을 상속할 경우 필드들도 칼럼으로 인식하도록 함.


@EntityListener(AuditingEntityListener.class) : BaseTimeEntity 클래스에 Auditing 기능 포함


@CreatedDate, @LastModifiedDate : Entity가 생성되어 저장될 때, Entity의 값을 변경할 때 시간이 자동 저장



추가로 Posts 클래스가 BaseTimeEntity 를 상속받도록 변경하고 Application 클래스에 @EnableJpaAuditing 어노테이션을 추가한다.



- JPA Auditing 테스트 코드 작성



PostsRepositoryTest.java

@Test
public void BaseTimeEntity_등록() {
//given
LocalDateTime now = LocalDateTime.of(2019,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);
}


콘솔에서 시간을 확인할 수 있다.

반응형

'활동 > 교육과정 중 기록' 카테고리의 다른 글

200318 Spring Boot  (0) 2020.03.18
200316 Spring Boot  (0) 2020.03.16
200315 Spring Boot  (0) 2020.03.15
200314 Spring Boot  (0) 2020.03.14
200211 React  (0) 2020.02.11
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함