• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@Embedded 와 @EmbeddedId 의 차이

22.12.16 16:40 작성 22.12.16 16:42 수정 조회수 578

0

안녕하세요 값 타입 중 임베디드 타입에 대해서 공부하고 있는데, @Embeddable 과 @Embedded 외 @EmbeddedId 라는 어노테이션도 있더라구요,

@Entity
@Table(name = "Area")
public class AreaJpaEntity {

	@EmbeddedId
	private AreaId id;
        ...
}

@Embeddable
public class AreaId {
        
        @column(name = "area_alpha_name")
        private String areaAlphaName;

        @column(name = "area_num_name")
        private String areaNumName;        
        ...
}

 

@EmbeddedId가 @Embedded와 유사하게 쓰이는 것 같은데, 정확히 어떤 차이점이 있는건가요? 그리고 @EmbeddedId로 선언된 타입도 임베디드 타입으로 볼 수 있는거죠?

 

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.12.16

안녕하세요. 강민님, 공식 서포터즈 y2gcoder입니다.

맞습니다. 간단하게 생각하시면 둘다 엔티티에서 임베디드 객체를 사용하기 위한 것입니다. 차이라면 이름에서 알 수 있듯이 @EmbeddedId 는 복합키를 ID로 하기 위해 사용하는 것이고, @Embedded는 ID가 아닌 다른 컬럼들을 한 객체로 사용하고 싶을 때 사용할 수 있습니다.


감사합니다.