JPA Auditing - BaseTimeEntity
π JPA Auditing μ¬μ©νκΈ°
- jpaκ° μ 곡νλ audit κΈ°λ₯μΌλ‘, μκ°μ μλμΌλ‘ κ°μ λ£μ΄μ€ > μλμΌλ‘ μκ°μ 맡νν΄ λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈμ λ£μ΄μ€
- λ°μ΄ν°μ μμ±μκ°, μμ μκ°, νΉμ μμ±ν μ¬λ λ±μ μ μ₯ν΄μΌν λ
- λ§€λ² λͺ¨λ μν°ν°μ 컬λΌμΌλ‘ μ§μ ν΄μ μ½λλ₯Ό μμ±νκΈ°μ λ²κ±°λ‘μ
BaseTimeEntity
package com.sejongmate.common.domain;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
}
@MappedSuperclass
: Jpa μν°ν° ν΄λμ€κ° BaseTimeEntityλ₯Ό μμνλ κ²½μ° ν΄λΉ ν΄λμ€κ° κ°μ§ νλλ μ΄λ‘ μΈμλλλ‘ ν¨
@EntityListeners(AuditingEntityListener.class)
: Auditing κΈ°λ₯ μ 곡
@CreatedDate
: μμ± μκ° μλ μ μ₯
@LastModifiedDate
: λ³κ²½ μκ° μλ μ μ₯
- μνλ Entity ν΄λμ€μ μμ ν΄λμ€ μμν ν, main application ν΄λμ€μ λ°λμ
@EnableJpaAuditing
μ΄λ
Έν
μ΄μ
μ μΆκ°ν΄μ£Όμ΄μΌ ν¨