인프런 커뮤니티 질문&답변

love zoe님의 프로필 이미지
love zoe

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

Mapped Superclass - 매핑 정보 상속

@MappedSuperclass 질문

작성

·

472

0

@MappedSuperclass을 이용해서

지금 예제로 하고 있는 엔티티들의 id값을 BaseEntity로 만들어서 매핑 정보를 상속받는 식으로 개발을 해도 상관없는 건가요?

<BaseEntity.class>

@MappedSuperclass
public abstract class BaseEntity {

@Id @GeneratedValue
private Long id;
}

이렇게 만들어놓은 후에 각 엔티티마다 상속받게 하고,

@AttributeOverride로 매핑 정보를 재정의해서 하는 방식도 많이 쓰이는지 궁금합니다!

<Member.class>

@Entity
@Getter @Setter
@AttributeOverride(name = "id",
column = @Column(name = "member_id"))
public class Member extends BaseEntity {

private String name;

@Embedded
private Address address;

@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
}

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 댕댕님

이런 방식도 사용이 가능은 합니다.

그런데 변수명을 실제 id라고 하기보다는 어느정도 구분을 위해서 memberId와 같이 사용하기 때문에 저는 id에 대해서는 사용하지 않게 되더라구요.

등록일자, 수정일자 처럼 일반적으로 자주 사용하는 속성에는 주로 사용합니다.

감사합니다.

love zoe님의 프로필 이미지
love zoe
질문자

저런 식으로 사용이 가능한지 궁금했는데 궁금증이 풀렸습니다!!

좋은 답변 감사합니다!

 

love zoe님의 프로필 이미지
love zoe
질문자

영한님 강의듣고 엔티티 클래스에 일반 클래스를 상속해보니까 오류는 안나지만 속성이 추가가 안되는 걸 확인했습니다 이렇게 무시되는 게 맞는건가요?

love zoe님의 프로필 이미지
love zoe

작성한 질문수

질문하기