
Contents
JPA AuditingJPA Auditing
엔티티의 생성 및 수정 시간을 자동으로 관리해주는 기능
@CreatedDate, @LastModifiedDate
먼저 Auditing을 활성화 해야한다
메인 클래스에 @EnabledJpaAuditing 을 활성화
엔티티 리스너 연결, @CreatedDate, @LastModifiedDate 사용
import jakarta.persistence.*; 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 abstract class BaseEntity { @CreatedDate @Column(nullable = false, updatable = false) private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime modifiedAt; }보통 이런 식으로 베이스가 되는 엔티티에 연결 시켜놓고
이 베이스 엔티티를 상속 받아 사용하는 방식을 주로 사용한다@MappedSuperClass
→ 이 자체는 엔티티가 아니지만 엔티티가 상속해서 사용함을 명시한 어노테이션
이제 상속하여 사용하기
@Getter @Entity @Table(name = "users") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(length = 50, nullable = false) private String name; @Column(unique = true, nullable = false) private String email; private String address; public User(String name, String email, String address) { this.name = name; this.email = email; this.address = address; } public void update(String name, String email, String address) { this.name = name; this.email = email; this.address = address; } }후엔 각 DTO에 LocalDateTime 타입의 필드를 넣어 사용한다
Share article