본문 바로가기

PROGRAMMING/JPA

[JPA] @MappedSuperclass

엔티티에서 공통 매핑정보가 필요 할 때 사용한다.

 

예를 들어

생성자, 생성일, 수정자, 수정일과 같은 모든 엔티티에 있어야 하는 속성이 추가될 때

위 공통 속성을 갖는 클래스를 생성해 엔티티들이 extends를 하면 복붙없이 간단하게 추가 가능하다.

 

BaseEntity class

위와 같이 평범하게 공통 필드를 선언한 클래스를 생성하고

@MappedSuperClass 어노테이션을 추가

 

Member class

공통 필드가 필요한 엔티티에 extends를 사용해 상속해주면

 

테이블이 생성될 때 공통 필드가 함께 생성되는것을 확인할 수 있다.

 

실제로 BaseEntity라는 테이블이 생성되는건 아니며, 단순히 매핑정보만 제공한다.