- N쪽이 연관관계주인 (비즈니스적으로 주인은 중요한게 아님)
- 'N' 의 Entity 클래스에서 '1'의 클래스 선언, @ManyToOne 사용후, @JoinColum (name = "1의 Entity 클래스의 Pk ColumName명")
- "1"의 Entity 클래스에서 List<>로 선언하고 @OneToMany (mappedby = "필드값")
- mappedby = 거울이라고 생각하면 편하다.
각각 Entity 클래스에서 @OneToOne 선언후 연관 관계 주인을 정해야 한다.
- 두 Entity 클래스중 연관관계 주인은 1대1 관계임으로 연관 관계 주인은 아무나 상관없다, 정한후 1대N일 경우랑 똑같이 구현한다.
- 주인으로 정한쪽에 @JoinColum, 아닌쪽을 mappedby = 해준다.
@Embeddable (!! 기본생성자 필수)
public class Address {
private String address1;
private String city;
private String street;
protected Address() {
}
public Address(String city, String street, String zipcode) {
this.city = city;
this.street = street;
this.zipcode = zipcode;
}
}
사용할때
@Embedded (표시하여 내장 되어있다고 보여줌(생략해도되지만 표시하는걸 권장)
prviate Address address;