본문 바로가기
스프링

스프링으로 게시판 만들기 5 - 날짜 추가

by 근즈리얼 2021. 8. 3.
728x90

요번 포스팅에서는 게시물을 작성한 날짜를 추가해 보겠습니다.

 

jpa에 아주 좋은 기능이 있어서 그것을 이용해볼 것입니다!!

 

그 기술은 바로 JPA Auditing 입니다.

 

데이터베이스에 저장할때와 수정할때 시간을 자유롭게 사용할 수 있습니다.

 

우선 Timestamped라는 클래스를 만들고 Board클래스에 상속하도록 합니다.

 

Timestamped 코드

package hello.myproject.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.LocalDate;

@MappedSuperclass
@Getter
@EntityListeners(AuditingEntityListener.class)
public class Timestamped {

    @CreatedDate
    private LocalDate createAt;

    @LastModifiedDate
    private LocalDate modifiedAt;
}

- @MappedSuperclass : 이 애노테이션이 있어야 데이터베이스에 자동으로 생성이 됩니다.

- @EntitiyListeners(AuditingEntityListene.class) : 생성, 변경 시간을 자동으로 업데이트 해줍니다.

- LocalDate 를 이용하므로써 yyyy-mm-dd의 양식으로 시간을 업데이트합니다.

 

그리고 중요한 부분이 하나 더 있습니다!! 저도 처음에 위의 과정만 실시하고 안되어서 당황했었습니다!!

 

바로

 

MyprojectApplication클래스에 @EnableJpaAuditing을 추가해줘야 합니다.

이 애노테이션이 jpaAuditing를 활성화 해주는 기능을 합니다.

package hello.myproject;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing
@SpringBootApplication
public class MyprojectApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyprojectApplication.class, args);
    }

}

 

이제 실행을 해서 데이터베이스에 어떻게 저장되는지와 실제 뷰를 통해 어떻게 보여지는지 확인해보겠습니다.

 

데이터베이스입니다.

 

url를 통해 들어간 뷰의 모습입니다.

 

 

이상으로 JPA auditing를 이용한 데이터를 저장할 때 시간을 나타내는 방법에 대한 포스팅이었습니다!!~! 

728x90

댓글