JPA Auditing 이해 및 적용

파이 ఇ·2024년 7월 3일
1
post-thumbnail

Auditing?

Audit은 사전적 의미로 감시하다, 심사하다 등의 의미를 가지고 있습니다.
Spring Data JPA에서는 Auditing이라는 기능을 제공하는데, 이를 사용하여 엔티티가 생성되고 변경되는 그 시점을 감지하여 생성시각, 수정시각, 생성한 사람, 수정한 사람 등의 정보를 저장할 수 있습니다.

Auditing 적용해보기

📌 Configuration 클래스 생성

@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
}

@EnableJpaAuditing

@EnableJpaAuditing 애노테이션을 붙여서 Auditing 활성화를 해줍니다.

📌 엔티티 코드 작성

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class Example {

  @CreationTimestamp
  private ZonedDateTime createdAt;

  @CreationTimestamp
  private ZonedDateTime updatedAt;
}

@MappedSuperclass

JPA Entity 클래스들은 Example 클래스를 상속 받을 경우 createdAt과 updatedAt을 필드로 인식합니다.

예시


참고로 굳이 시간이 아니어도, 위 사진과 같이 여러 클래스에 공통 속성이 존재한다면 별개의 엔티티 클래스ex) BaseEntity로 분리하여 상속받아 사용하면 많은 코드의 중복을 줄여줄 수 있어 하나의 좋은 방법이 될 수 있습니다.

@EntityListeners

Auditing을 적용할 엔티티 클래스에 @EntityListeners 애노테이션을 적용해야 합니다. 해당 애노테이션은 엔티티의 변화를 감지하여 엔티티와 매핑된 테이블의 데이터를 조작합니다.

@CreationTimestamp

@CreationTimestamp 애노테이션은 INSERT 쿼리가 발생할 때, 현재 시간을 값으로 채워 쿼리를 생성합니다.

끝 !

profile
⋆。゚★⋆⁺₊⋆ ゚☾ ゚。⋆ ☁︎。₊⋆

0개의 댓글