Spring
임베디드 타입
yougeun
2023. 3. 27. 17:04
728x90
임베디드 타입 정의
@Embeddable
public class Address {
private String city;
private String street;
private String zipcode;
public Address() {
}
...
}
@Embeddable 어노테이션을 사용하여 임베디드 타입을 정의할 수 있다.
임베디드 타입은 기본생성자가 필수로 있어야한다.
임베디드 타입 사용
@Entity
@Table(name = "ORDERS")
public class Order {
@Id @GeneratedValue
private Long id;
private int orderAmount;
@Embedded
private Address address;
...
}
임베디드 값타입을 사용하는 엔티티에 @Embedded 어노테이션을 사용한다.
한 엔티티에서 같은 임베디드 타입을 사용할 경우
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
private int age;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "city",column = @Column(name = "work_city")),
@AttributeOverride(name = "street",column = @Column(name = "work_street")),
@AttributeOverride(name = "zipcode",column = @Column(name = "work_zipcode"))
})
private Address workAddress;
@Embedded
private Address homeAdrress;
...
}
@AttributeOverrides, @AttributeOverride를 사용해서 칼럼명 속성을 재정의하면 같은 임베디드 타입을 사용가능하다.
728x90