본문 바로가기

JPA

공통 정보 매핑 @MappedSuperClass

강의참고 - 자바 ORM 표준 JPA 프로그래밍 - 기본편

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

 

목표

- 공통정보매핑에 관련된 어노테이션의 종류와 사용법을 익힌다.

 

공통 정보 매핑 어노테이션

@MappedSuperClass

- 등록일, 수정일, 등록자, 수정자 같이 전체 엔티티에 공통으로 적용하는 정보를 모아놓은 엔티티에 사용하는 어노테이션이다.

- 부모 클래스를 상속받는 자식 클래스에 매핑 정보만 제공한다.

- 조회, 검색[em.find()]이 불가능하다.

- 직접 생성해서 사용할 일이 없으므로 추상 클래스로 구현을 권장한다.

 

@CreatedDate, @LastModifiedDate

- 등록일, 수정일로 사용 할 필드에 사용하면 insert / Insert, Update 시에 현재 시간을 넣어준다.

@MappedSuperClass 구현코드

@EntityListeners(AuditingEntityListener.class)
@Getter
@Setter
@MappedSuperclass
public class BaseEntity {

    @Column(name = "CREATED_BY", updatable = false)
    private String createdBy;

    @Column(name = "UPDATED_BY")
    private String updatedBy;

    @CreatedDate
    @Column(name = "CREATED_DATE", updatable = false)
    private LocalDateTime createdDate;

    @LastModifiedDate
    @Column(name = "UPDATED_DATE")
    private LocalDateTime updatedDate;
}

 

@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Member extends BaseEntity {

    @Id
    @Column(name = "MEMBER_ID")
    private Long memberId;

    @Column(name = "MEMBER_NAME")
    private String memberName;
}

'JPA' 카테고리의 다른 글

영속성 전이와 고아객체  (0) 2022.12.04
프록시와 연관관계 관리  (0) 2022.12.04
상속관계 매핑  (0) 2022.11.29
연관관계 매핑  (0) 2022.11.27
DDL 자동 생성 및 엔티티 매핑  (0) 2022.11.27