JPA Auditing, EntityListener, MappedSuperclass

경성구·2022년 5월 20일
0

Spring

목록 보기
15/19

@MappendSuperclass

  • 여러 엔티티 객체에서 사용되는 공통 속성이 존재할 경우가 많음
  • 공통적으로 사용되는 속성은 대표적으로 id,createdAt,updateAt 등이 있음
  • 공통되는 속성을 별도의 클래스로 구분하여 @MappendSuperclass를 선언한 후 사용
  • 코드 상 분리되어 있는 것이며, 데이터베이스의 테이블 개념에서는 분리되어 있지 않음

    JPA Auditing

    Auditing

  • JPA에서의 Auditing은 각 엔티티 별로 누가,언제 접근했는지 기록하여 감시 체계를 꾸리는 것을 의미
    예) 언제 데이터가 생성되었는지, 누가 데이터를 생성했는지, 언제 데이터가 변경되었는지 등
  • Spring Data JPA에서 이 기능을 사용하기 위새너는 @Enable JpaAuditing을 사용해야 함

    @EntityListener

  • 엔티티 객체를 데이터베이스에 적용하기 전/후에 콜백을 요청하는 어노테이션
  • @EntityListener의 파라미터로 콜백을 요청할 클래스를 지정하여 사용
  • @EntityListener의 요청 시점은 아래와 같음
    -@PostLoad
    -@PrePersist
    -@PostPersist
    -@PreUpdate
    -@PostUpdate
    -@preRemove
    -@PostRemove

    @CreatedDate : 엔티티가 저장되는 시점에 자동으로 시간을 주입
    @CreatedBy : 엔티티가 저장되는 시점에 저장 주체가 누구인지 주입
    @LastModifiedDate : 엔티티가 수정되는 시점에 자동으로 시간을 주입
    @LastModifiedBy : 엔티티가 수정되는 시점에 수정 주체가 누구인지 주입

  • profile
    코딩배우기!

    0개의 댓글

    관련 채용 정보