@Entity가 선언된 Entity Class는 내부에 POJO Field를 선언하는 경우 해당 Field에 @Embedded를 선언해야한다
。Entity Class 내 객체 Field를 선언 시 JPA는 Entity 객체로 판단하여 연관관계 Mapping을 위한 어노테이션 ( @ManyToOne 등 )를 요구.
。일반 POJO 객체를 Entity Class 내부에 선언할 필요가 존재하는 경우 해당 Field에 @Embedded로 선언하고 해당 POJO는 클래스 레벨에서 @Embeddable이 선언되어야한다.
▶ 이후 DB Entity가 Mapping한 DB Table에서 해당 POJO 내부의 Field까지 포함하여 Column으로 생성
DB Entity
。해당 POJO Field에 @Embedded 선언
@Entity
@Getter
@Table(name = "Orders")
public class OrderEntity extends BaseEntity {
@Embedded
private Receiver receiver;
}
POJO
。클래스레벨에서 @Embeddable 선언
▶ @Column을 통해 각각 DB Table에서 표현될 Column명을 지정가능
@Getter
@Embeddable
public class Receiver {
@Column(name = "receiver_name")
private String name;
@Column(name = "receiver_address")
private String address;
@Column(name = "receiver_mobile")
private String mobile;
}

▶ OrderEntity가 Mapping한 Orders 테이블에 POJO에서 정의된 field가 Column으로 정의됨을 확인가능