JPA

[JPA] 13. @MappedSuperclass

inuma 2021. 1. 11. 23:42
프로젝트 git url github.com/rtef23/JpaStudy
필요 1. docker
2. docker-compose
프로젝트 정보 mysql : 5.7 - docker image
java : 1.8

 

@MappedSuperclass

  • 공통 매핑 정보가 필요할 때 사용
  • 공통인 부분을 추출하여 필요한 값을 상속 관계로 넘겨주는 방법
  • 같은 부모 클래스를 상속 받더라도 자식 엔티티의 테이블 간에는 연관관계가 없다.
  • Superclass로는 조회 불가(CreateInfo)
  • 직접 생성해서 사용할 일이 없기 때문에 추상 클래스로 사용하는 것을 권장
@MappedSuperclass
public class CreateInfo {
  private String creator;
  private LocalDateTime createDateTime;
  
  ...
}

@Entity
public class Member extends CreateInfo {
  @Id
  @GeneratedValue
  private Long id;

  private String name;
  
  ...
}

@Entity
public class Movie extends CreateInfo {
  @Id
  @GeneratedValue
  private Long id;

  private LocalDateTime openDateTime;
  
  ...
}