본문 바로가기

MappedSuperClass2

JPA - 고급맵핑 - 요구사항 분석과 맵핑3 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 실전 예제 아래와 같은 요구사항이 추가되었다고 가정하자. 상품의 종류는 음반, 도서, 영화가 있고 이후 확장가능하다. 모든 데이터는 등록일과 수정일이 있다. 상품의 종류에 음반, 도서, 영화가 있다는것에 대한 요구사항을 UML 로 표현하면 아래와 같다. Album, Book, Movie 객체는 Item 객체를 상속받는다. JPA 로 이러한 상속관계를 맵핑할 떄에는 @Inheritance 어노테이션을 사용한다. 실전이라면 맵핑 전략을 신중하게 고르겠지만 예제이기 때문에 간단하게 SINGLE_TABLE 전략을 이용해보자. 2 번째 요구사항인 모든 엔티티에 등록일과 수정일 컬럼을 추가할 때에는 컬럼을 모두 추가해주지 말고 맵핑 관계만 상속받는 @MappedSu.. 2021. 7. 13.
JPA - 고급맵핑 - MappedSuperclass - 참조: 자바 ORM 표준 JPA 프로그래밍 - @MappedSuperclass 앞에서 살펴본 슈퍼타입과 서브타입에서는 부모 클래스와 자식 클래스를 모두 테이블과 맵핑했다. @MappedSuperclass 를 이용하면 부모 클래스는 테이블과 맵핑하지 않고, 상속 받는 자식 클래스에게 맵핑 정보만 제공할 수 있다. 즉 @Entity 는 실제 테이블과 맵핑되지만 @MappedSuperclass 는 실제 테이블과 맵핑되지 않는다. 위와 같이 MEMBER 와 SELLER 테이블이 있지만, MEMBER 와 SELLER 는 비즈니스적인 관계가 없다고 가정하자. 관계는 없지만 ID 와 NAME 을 공통된 속성으로 사용하고 싶을 때가 있다. 이를 UML 로 표현해보면 위와 같이 된다. BaseEntity 에 id, .. 2021. 7. 10.