[본 포스팅은 자바 ORM 표준 JPA 프로그래밍 기본 편을 기반으로 작성하였습니다.]
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런
www.inflearn.com
- 공통 매핑 정보가 필요할 때 사용(id, name)
만약 위와 같이 id와 name이 서로 공통되면 BaseEntity라는 추상 클래스를 만들어 id와 name을 저장하고 Member와 Seller는 그것을 상속받아 사용하면 된다.
- 상속관계 매핑 X
- 엔티티 X, 테이블과 매핑 X
- 부모 클래스를 상속받는 자식 클래스에 매핑 정보만 제공
- 조회, 검색 불가(em.find(BaseEntity) 불가)
- 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장
코드
@MappedSuperclass
public abstract class BaseEntity {
@Column(name = "MEMBER_ID")
private Long id;
private String name;
}
이렇게 추상 클래스를 생성해서 @MappedSuperclass 애노테이션을 붙여주고
자식 클래스에서 extends로 상속받기만 하면 된다.
@Column(name = "") 속성의 경우 테이블이 생성될 때 저 이름으로 생성하겠다는 속성이다. 아무것도 안 붙이면 변수명으로 칼럼이 생성된다.
'JAVA > JPA' 카테고리의 다른 글
[JPA] 스프링 데이터 JPA 페이징과 정렬 (feat. DTO를 사용해야 하는 이유) (0) | 2023.01.02 |
---|---|
[JPA/JPQL] 페치 조인(fetch join)이란? 특징과 한계 - 엔티티 페치 조인, 컬렉션 페치 조인, DISTINCT로 중복 제거 (0) | 2022.12.29 |
[JPA] 상속관계 전략과 매핑 (코드 예시) (0) | 2022.12.23 |
[JPA] 다대일(N:1), 일대다(1:N), 일대일(1:1) 연관관계 매핑 (코드 예시) (0) | 2022.12.23 |
[JPA] 엔티티 매핑(@어노테이션)과 스키마 자동 생성 속성 (0) | 2022.12.20 |