작성
·
469
0
Person 클래스입니다.
package hellojpa;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Person {
@Id
@GeneratedValue
@Column(name = "person_id")
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Address 클래스입니다.
package hellojpa;
import javax.persistence.*;
@Embeddable
public class Address {
private String city;
private String street;
private String zipcode;
@OneToOne
@JoinColumn(name = "person_id")
private Person person;
public Address() {
}
public Address(String city, String street, String zipcode) {
this.city = city;
this.street = street;
this.zipcode = zipcode;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
}
제가 연관관계 매핑에 대해서 이해를 못하고 있는 건가요?
person을 1:1 매핑을했다고 생각했습니다.
답변 1
0
안녕하세요, dbsquddlfz 님! 공식 서포터즈 codesweaver 입니다.
@Embeddable 객체는 엔티티가 아니기에 Person과 관계를 맺지 않아야 합니다.
Person 객체 내에 다음과 같이 선언하여 사용하면 됩니다.
@Embedded
private Address address;
감사합니다.
강의에서 embeddable은 엔티티를 갖고있을 수 있다고 하셨는데 그럼 매핑을 안 하고 그냥 선언만 해서 사용하는 건가요?