inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

Embedded type

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

435

jjunhwan

22 asked

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

JPA java

Answer 1

1

jjunhwan

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

해결했습니당!

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

36

2

inheritance startegy 선택시 고려사항

0

25

1

Entity 동등성 비교

0

25

1

실무 조언 관련 질문입니다.

0

52

1

H2데이터베이스 파일 생성

0

61

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

58

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

58

1

JPQL 메소드와 락

0

57

1

Delivery @OneToOne

0

64

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

98

2

UnsupportedOperationException 발생

0

89

3

H2 Database 연결이 안됩니다.

0

98

2

연관관계 매핑 질문드립니다.

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

113

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

83

1

영속성 컨텍스트

0

70

1

JPA 프록시

0

100

1

Native Query와 MyBatis

0

74

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

94

1

임베디드 타입 예시 코드 관련 질문

0

121

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

97

3

인텔리제이 패키지 커서 단축키 질문

0

109

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

149

1