Project/Study

[Spring Boot] BaseTimeEntity

by somida 2021. 8. 3.

BaseTimeEntity

모든 Entity의 상위 클래스가 되어 Entity들의 createdDate, modifiedDate를 자동으로 관리하는 역할을 함

 

BaseTimeEntity.java

  • @MappedSuperclass : JPA Entity 클래스들이 BaseTimeEntity를 상속할 경우 필드들도 칼럼으로 인식하도록 함
  • @EntityListeners(AuditingEntityListener.class) : Auditing 기능 포함
  • @CreatedDate : 생성될 때 자동 저장
  • @LastModifiedDate : 수정될 때 자동 저장
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.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {

    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime modifiedDate;
}

 

BaseTimeEntity 상속

public class Posts extends BaseTimeEntity {
	...
}

 

JPA Auditing 어노테이션 활성화

import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
 
반응형

'Project > Study' 카테고리의 다른 글

[Git] Git Bash계정 변경  (0) 2021.08.31
[Spring Boot] Mustache  (0) 2021.08.04
[Spring Boot] Spring Data JPA  (0) 2021.08.03
[Spring Boot] Unit Test 코드  (0) 2021.08.03
[Spring Boot] Lombok  (0) 2021.08.03

댓글