JPA 생성시간 / 수정시간 자동화

귀찮Lee·2022년 8월 28일
0

◎ 생성시간 / 수정시간 사용

  • 기본적으로 Data는 만들어진 시간과 수정된 시간을 기록하는 것이 좋다.
    • 개인적으로는 데이터를 관리하면서 이런저런 상황에서 용이할것이라 생각함
      • 버그가 일어난 상황에서 특정 시간대 자료 추출 용이
      • 어느 시간대에 많이 이용하는지 ...

◎ JPA 적용

  • JPA에서 사용

    • 여러 방법이 있겠지만, 따로 매 요청마다 설정하지 않아도 자동화를 할수 있는 방법이 있다.
    • 아래 클래스를 만든 후에, 다른 Entity에 extends 하여 사용
    @Getter
    @MappedSuperclass
    @EntityListeners(AuditingEntityListener.class)
    public class Auditable {
        @CreatedDate
        @Column(name = "CREATED_AT")
        private LocalDateTime createdAt;
    
        @LastModifiedDate
        @Column(name = "LAST_MODIFIED_AT")
        private LocalDateTime modifiedAt;
    }
    @NoArgsConstructor
    @Getter
    @Setter
    @Entity
    // Auditable 상속하여 사용
    public class Question extends Auditable {
    	...
    }
    • 그 다음 Spring 실행파일 (xxxApplication.java)에 @EnableJpaAuditing 추가
    @EnableJpaAuditing // 추가
    @SpringBootApplication
    public class PreProjectApplication {
        public static void main(String[] args) {
            SpringApplication.run(PreProjectApplication.class, args);
        }
    
    }

◎ 저장 시간대 설정

@ 22.09.04 추가

  • DB에서 저장 시간을 보게 된다면, 현재 시각과 일정하게 차이가 나는 것을 볼 수 있다.
  • 이는 저장 시간대가 기본값으로 설정 되어 있어서 나타나는 현상이다.
  • 따라서 application.yml 에서 시간대를 설정할 수 있다.
spring:
  jpa:
    hibernate:
      jdbc:
        time_zone : Asia/Seoul
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글