@Embedded

Dev.Shinny·2023년 7월 3일
0

@Embedded는 JPA 어노테이션 중 하나로, 엔티티 클래스에서 다른 클래스를 포함하는 경우에 사용됩니다. @Embedded를 사용하여 다른 클래스를 현재 엔티티의 일부로 포함시킬 수 있습니다.

일반적으로 @Embedded는 값 객체(Value Object)를 엔티티에 포함시키는 경우에 사용됩니다. 값 객체는 여러 개의 속성을 가지며, 주로 엔티티에 의존적인 값을 표현하기 위해 사용됩니다. 예를 들어, 주소(Address)를 값 객체로 정의하여 엔티티에 포함시킬 수 있습니다.

@Embedded 어노테이션을 사용하여 값 객체를 엔티티에 포함시키면, 값 객체의 속성은 엔티티의 테이블에 컬럼으로 매핑됩니다. 따라서 값 객체의 속성들은 엔티티의 컬럼으로 저장되어 관리됩니다.

@Embeddable
public class Address {
    private String street;
    private String city;
    private String zipCode;
}

@Entity
public class User {
    @Id
    private Long id;
    private String name;

    @Embedded
    private Address address;
    //...
}

위 예시에서 Address 클래스는 값 객체로 정의되고 @Embeddable 어노테이션이 지정되었습니다. 이렇게 Address 클래스에 @Embeddable 어노테이션을 지정하면 User 엔티티에 address 필드를 값 객체로 포함시킬 수 있습니다. address 필드의 속성들은 User 엔티티의 테이블에 컬럼으로 매핑됩니다.

따라서 @Embedded 어노테이션을 사용하면 엔티티 클래스에 다른 클래스를 포함시킬 수 있으며, 값 객체를 엔티티에 편리하게 사용할 수 있게 됩니다.

profile
Hello I'm Shinny. A developer who try to enjoy the challenge.

0개의 댓글