InheritanceType.JOINED 전략을 이해하려면 JPA에서 상속을 사용하는 방법과 이 전략이 데이터베이스 테이블에 어떻게 매핑되는지를 알아야 합니다. InheritanceType.JOINED
는 JPA에서 상속된 엔티티를 데이터베이스에 매핑할 때 사용하는 세 가지 전략 중 하나입니다.
JPA에서 상속 구조를 데이터베이스에 매핑할 때 주로 사용되는 세 가지 전략이 있습니다:
InheritanceType.JOINED
전략을 사용하면, 상속 구조의 각 엔티티 클래스가 별도의 테이블에 저장됩니다. 상위 클래스의 테이블과 하위 클래스의 테이블은 기본 키를 기준으로 조인(Join)되어, 전체 객체의 데이터를 얻을 수 있습니다.
import jakarta.persistence.*;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
@Entity
public class FullTimeEmployee extends Employee {
private Double salary;
}
@Entity
public class PartTimeEmployee extends Employee {
private Double hourlyWage;
}
위 예제에서 Employee
는 상위 클래스(base class)이고, FullTimeEmployee
와 PartTimeEmployee
는 상위 클래스를 확장하는 하위 클래스(subclass)입니다.
InheritanceType.JOINED
전략을 사용하면 다음과 같은 데이터베이스 테이블 구조가 생성됩니다:
id
, name
1, "John Doe"
id
, salary
1, 50000.00