티스토리 뷰
728x90
반응형
정의 : 엔티티들 사이에서 공통적으로 사용되는 컬럼을 모아두는 클래스일 경우 선언하여 사용하는 어노테이션
MappedSuperclass 선언 예제 코드
@MappedSuperclass
public abstract class BaseEntity {
private String createBy;
private LocalDate createDate;
private String modifyedBy;
private LocalDate modifyDate;
...
}
→ 선언할 경우 왠만하면 추상클래스로 선언하는 것이 좋다.
적용 대상 클래스 Member.java
@Entity
public class Member extends BaseEntity{
@Id
@Column(name="MEMBER_ID")
private Long id;
private String name;
private String city;
private String street;
private String zipcode;
...
}
테이블 결과 화면: BaseEntity 컬럼들이 자동 생성
@MappedSuperclass 특징
- 테이블과 관계 없고, 단순히 엔티티가 공통으로 사용하는 매핑정보를 모으는 역할
- 주로 등록일,수정일,등록자,수정자 같은 전체 엔티티에서 공통적으로 적용하는 정보를 모을 때 사용
- 참고 : @Entity 클래스는 @Entity나 @MappedSuperclass로 지정한 클래스만 상속 가능
@MappedSuperclass 주의 점
- 상속관계 매핑이 아님
- 엔티티 또는 테이블과 매핑하는 것이 아님
- 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
- 조회, 검색 불가(em.find(BaseEntity)불가)
- 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장
728x90
반응형
'프로그램 언어 > Spring JPA' 카테고리의 다른 글
지연 로딩, 즉시로딩 (0) | 2023.04.28 |
---|---|
PROXY(프록시) (0) | 2023.04.28 |
SPRING JPA 상속 관계 매핑 (조인 전략) (0) | 2023.04.27 |
SPRING JPA 상속관계(단일 테이블 전략) (0) | 2023.04.26 |
양방향 연관관계 , 연관관계의 주인 (0) | 2023.04.26 |
250x250
반응형
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 네이버 클라우드
- 정의
- centos7
- dockerfile
- dfs
- insert
- 알고리즘
- 스케줄러
- 리눅스
- Lock
- MySQL
- 권한
- 컨테이너
- docker
- 캐시
- Quartz
- Cache
- LocalDate
- 격리수준
- 도커
- hazelcast
- ncp
- spring
- 캘린더
- Java
- leatcode
- mybatis
- 이미지
- 개념 이해하기
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함