JPA - Entity 내 POJO 선언 - @Embedded , @Embeddable

이정수·2025년 11월 11일

Spring JPA

목록 보기
6/9
post-thumbnail

@Entity가 선언된 Entity Class는 내부에 POJO Field를 선언하는 경우 해당 Field@Embedded를 선언해야한다
Entity Class객체 Field를 선언 시 JPAEntity 객체로 판단하여 연관관계 Mapping을 위한 어노테이션 ( @ManyToOne 등 )를 요구.

。일반 POJO 객체Entity Class 내부에 선언할 필요가 존재하는 경우 해당 Field@Embedded로 선언하고 해당 POJO클래스 레벨에서 @Embeddable이 선언되어야한다.
▶ 이후 DB EntityMappingDB Table에서 해당 POJO 내부의 Field까지 포함하여 Column으로 생성

  • DB Entity
    。해당 POJO Field@Embedded 선언
@Entity
@Getter
@Table(name = "Orders")
public class OrderEntity extends BaseEntity {
	@Embedded // POJO를 Entity 내부에 선언
	private Receiver receiver;
}
  • POJO
    클래스레벨에서 @Embeddable 선언
    @Column을 통해 각각 DB Table에서 표현될 Column명을 지정가능
@Getter
@Embeddable
public class Receiver {
	// order 테이블의 각 field로 매핑
	@Column(name = "receiver_name")
	private String name;
	@Column(name = "receiver_address")
	private String address;
	@Column(name = "receiver_mobile")
	private String mobile;
}


OrderEntityMappingOrders 테이블POJO에서 정의된 fieldColumn으로 정의됨을 확인가능

profile
공부기록 블로그

0개의 댓글