[Spring-Data-JPA] Auditing - Entity 공통 요소 자동 맵핑하기

728x90
반응형
SMALL

 


# Config

 

@EnableJpaAuditing

  • Audit 기능 활성화를 위한 어노테이션

 


AuditorAware

  • createdBy, modifiedBy 맵핑을 위해 Bean 등록

 


# Auditing Field

 

Entity 공통 요소를 추출하여 소스 중복 제거

  • createdAt
  • createdBy
  • modifiedAt
  • modifiedBy

 


@EntityListeners(AuditingEntityListener.class)

  • Entity가 DB로 load/persist 되기 전후에 커스텀 로직을 선언하는 인터페이스

 


 

AuditingEntityListener

  • 특정 어노테이션을 탐색하여 Entity 변경 시 해당 값들을 자동으로 업데이트
    • @CreatedDate
    • @CreatedBy
    • @LastModifiedDate
    • @LastModifiedBy

 


@MappedSuperclass

  • 객체 입장에서 공통 맵핑 정보가 필요할 때 사용
  • 이후, 공통 맵핑 정보를 사용할 Eneity에서 extends 하여 사용

 

 


# Article Entity

 

공통 맵핑 정보는 상속 받아 사용

  • Entity 마다 createdAy/By, modifiedAt/By 를 선언하면 소스 중복 발생
  • @MappedSuperClass로 공통 맵핑 정보를 추출한 Class를 extends 하여 사용

 

728x90
반응형
LIST