👻 시간 엔티티 만들기!
매번 DB 에 생성시간과 수정시간을 삽입 하고 갱신 하는 것은 번거로운 일 입니다.
자동으로 생성시간과 수정시간을 관리해주는 JPA Auditing 을 사용합니다.
자 그러면 domain 패키지에 BaseTimeEntity 를 생성해봅시다.
@Getter
@MappedSuperclass // 해당 엔티티를 상속한 엔티티의 속성 값도 엔티티에 적용
@EntityListeners(AuditingEntityListener.class)// Auditing 기능을 적용
public class BaseTimeEntity {
    @CreatedDate // 엔티티가 생성되어 저장될 때 시간이 자동 저장
    private LocalDateTime createdTime;
    @LastModifiedDate // 조회한 엔티티의 값을 변경할 때 시간이 자동 저장
    private LocalDateTime modifiedTime;
}
👻 BaseTimeEntity 클래스를 Posts 클래스에 상속관계를 맺어보자!
@Getter // getter() 를 생성해 줍니다.
@NoArgsConstructor // 기본 생성자를 생성해 줍니다.
@Entity // 관계형 테이블과 링크될 클래스임을 정의합니다.
public class Posts extends BaseTimeEntity { // -> 상속 관계
}
👻 main 클래스에 @EnableJapAuditing 을 붙여 Auditing 기능을 활성화 해보자!.
@EnableJpaAuditing // JAP Auditing 활성화
@SpringBootApplication
public class BoardSpringbootWebserviceApplication{
    public static void main(String[]args) {
        SpringApplication.run(BoardSpringbootWebserviceApplication.class, args);
    }
}
👻 테스트 코드를 작성해보자!
@Test
@DisplayName("Base_Entity_TEST")
void Base_Entity_TEST() {
    // given
    LocalDateTime now = LocalDateTime
            .of(2022, 4, 1, 0, 0, 0);
    postsRepository.save(Posts.builder()
                .title("테스트")
                .content("테스트 중 입니다.")
                .author("홍길동")
                .build()
    );
    // when
    List<Posts>all = postsRepository.findAll();
    // then
    assertThat(all.get(0).getCreatedTime()).isAfter(now);
    assertThat(all.get(0).getModifiedTime()).isAfter(now);
}
.isAfter() 메서드로 생성된 now 값과 비교하여 검증을 하였습니다.
'Book > Spring boot 와 AWS로 혼자 구현하는 웹서비스' 카테고리의 다른 글
| [Book] 17) 수정 및 삭제 기능을 만들어보자! (0) | 2022.04.02 | 
|---|---|
| [Book] 16) 전체 조회 화면 및 기능을 만들어보자! (0) | 2022.04.02 | 
| [Book] 15) 머스테치로 화면 구성을 해보자! -2 (0) | 2022.04.01 | 
| [Book] 14) 머스테치로 화면 구성을 해보자! -1 (0) | 2022.04.01 | 
| [Book] 12) H2 DB 웹 콘솔에서 직접 접근해보자! (0) | 2022.04.01 | 
| [Book] 11) API 만들어보기! -4 (0) | 2022.03.31 | 
| [Book] 10) API 만들어보기! -3 (0) | 2022.03.31 | 
| [Book] 9) API 만들어보기! - 2 (0) | 2022.03.30 |