인프런 커뮤니티 질문&답변

잠꾸님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

임베디드 타입

임베디드타입이 엔티티를 갖도록 하는 것 질문드립니다.

작성

·

325

0

강의 15분쯤에 임베디드타입이 엔티티를 가질 수 있다고 하는 부분이 나와서 실습 해보려는데 잘 안되서 문의드립니다.

Address 임베디드 타입에 Person 이라는 Entitiy를 가지도록 하려고 하는데요. Address는 Member Entitiy에 속해있구요.

아래처럼 실행하면 에러가 나네요. 

Exception in thread "main" java.lang.ExceptionInInitializerError

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on jpabook.start.Member.homeAddress.person references an unknown entity: jpabook.start.Person

Address 에서 Person을 참조할 때 어노테이션을 @OneToOne, @JoinColumn 을 사용하였는데 맞나요?

어쨋든 어노테이션을 빼도 에러가나고 다 에러가 납니다. ㅠㅠ

@Entity
@Table(name="member")
public class Member {
@Id
@Column(name = "id")
private String id;
@Column(name = "name")
private String username;
private Integer age;

@Embedded
private Address homeAddress;

@Embedded
private Period workPeriod;


public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}
}

@Embeddable
public class Address {

private String city;
private String street;
private String zipcode;

@OneToOne
@JoinColumn(name = "person_id")
private Person person;

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;
}

public Person getPerson() {
return person;
}

public void setPerson(Person person) {
this.person = person;
}
}

@Entity
public class Person {

@Id @GeneratedValue
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;
}
}

답변 1

1

잠꾸님의 프로필 이미지
잠꾸
질문자

persistence.xml 에 추가한 Person 클래스를 안써놓아서 에러가 난 것이였네용;

해결했습니당!

잠꾸님의 프로필 이미지

작성한 질문수

질문하기