[Spring Boot] - @MappedSuperclass

chanyeong kim·2023년 2월 22일
0

Spring Boot

목록 보기
3/3

Spring boot 기반 프로젝트 진행하면서 만난 이슈 및 꿀팁 정리


@MappedSuperclass

객체 입장에서 공통 매핑 정보가 필요할때 사용한다. 예를 들어, id 값 같은 경우 대부분의 객체에서 사용하기 때문에, 부모 클래스에 선언하고 속성만 상속받아서 사용하고 싶을 때 사용한다.

생성자, 생성시간, 수정자, 수정시간을 공통적으로 가져가야 한다면, BaseEntity를 정의하면 된다.

@MappedSuperclass
public class BaseEntity {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(updatable = false, nullable = false, columnDefinition = "INT UNSIGNED")
    private Long id;
}
  • @GeneratedValue(strategy = GenerationType.IDENTITY) : IDENTITY 전략은 기본 키 생성을 DB에 위임한다. 즉, ID 값을 NULL로 하면 DB가 알아서 AUTO_INCREMENT 해준다.


@Entity
public class Ingredient extends BaseEntity {

	...
}
  • 이렇게 상속을 받아주면 아래와 같이, DB에 id가 생성된 것을 확인할 수 있다!


🙂

0개의 댓글