kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 책임
  • 결합도
  • 응집도
  • 역할
  • 설계 원칙
  • 객체지향 프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

Book/Spring boot 와 AWS로 혼자 구현하는 웹서비스

[Book] 13) JPA Auditing으로 생성시간/수정시간 자동화 하기!

2022. 4. 1. 11:38

👻  시간 엔티티 만들기!

매번 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
    'Book/Spring boot 와 AWS로 혼자 구현하는 웹서비스' 카테고리의 다른 글
    • [Book] 15) 머스테치로 화면 구성을 해보자! -2
    • [Book] 14) 머스테치로 화면 구성을 해보자! -1
    • [Book] 12) H2 DB 웹 콘솔에서 직접 접근해보자!
    • [Book] 11) API 만들어보기! -4
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바