웹 개발

JPA에서 생성일, 수정일 자동 입력하는 방법

노루아부지 2021. 8. 8. 20:05

데이터베이스를 사용할 때 등록일, 수정일을 기록하는 경우가 아주 많습니다.

이력 관리 차원에서 아주 중요합니다.

 

JPA에서 엔티티를 등록, 수정할 때 아래와 같이 날짜를 수정하는 코드가 많이 들어갑니다.

Book book = new Book();
book.setTitle("Eclipse");
book.setCreateDate(LocalDateTime.now());

 

그런데 매번 이것을 입력하기는 너무 번거롭습니다. 등록할 때는 등록일을 입력해야 하고, 수정할 때는 수정일을 입력해야 합니다. 이렇게 구분해서 입력해야 하고, 사람이 하는 일이다 보니 실수할 수도 있는 것이죠

이 문제를 해결할 수 있는 것이 JPA Auditing입니다.

 

  1. 먼저, JPA Auditing 어노테이션을 활성화 할 수 있도록 Application 클래스에 활성화 어노테이션을 추가합니다.
    @EnableJpaAuditing
    @SpringBootApplication
    public class Application {
      public static void main(String[] args) {
        SpringApplication.run(CaffeineApplication.class, args);
      }
    }​
  2. Entity에 Auditing을 적용합니다.
    @Getter
    @Setter
    @EntityListeners(AuditingEntityListener.class)
    public class Book {
      private String title;
      private String subTitle;
      @CreatedDate
      private LocalDateTime createDate;
      @LastModifiedDate
      private LocalDateTime lastUpdatedDate;
    }​

 

이로써 앞으로 jpa에서 데이터를 등록, 수정할 때 등록일, 수정일을 신경 쓰지 않아도 됩니다.

728x90
loading