Springboot

[Springboot] createdDate, modifiedDate 관리 클래스 작성

eunyeong 2022. 1. 25. 22:15
//BaseTimeEntity.java

package com.eunyeong.book.springboot.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.LocalDateTime;

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

    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime modifiedDate;

}

● @MappedSuperclass

JPA Entity 클래스들이 BaseTimeEmtity를 상속할 경우 createdDate, modifiedDate도 칼럼으로 인식하도록 합니다.

 

● @EntityListeners(AuditingEntityListener.class)

BaseTimeEntity 클래스에 Auditing 기능을 포함시킵니다.

 

● @CreatedDate

Entity가 생성되어 저장될 때 시간이 자동 저장됩니다.

 

● @LastModifiedDate

Entity의 값을 변경할 때 시간이 자동 저장됩니다.