2012-03-16 3 views
0

: 외국 학생 테이블OneToMany 및 ManToOne 주석 ManyToOne 매핑에서

public class Student { 
    private String studentName; 
    private Address studentAddress; 

public Student(String studentName, Address studentAddress) { 
     this.studentName = studentName; 
     this.studentAddress = studentAddress; 
    } 
@ManyToOne(cascade = CascadeType.ALL) 
    public Address getStudentAddress() { 
     return this.studentAddress; 
    } 

의 키와 주소 클래스로 사용되는 주소 테이블의 열은 다음과 같습니다

public class Address { 

    private long addressId; 
     private String street; 

      @Id 
     @GeneratedValue 
     @Column(name = "ADDRESS_ID") 
     public long getAddressId() { 
      return this.addressId; 
     } 
    @Column(name = "ADDRESS_STREET", nullable = false, length = 250) 
     public String getStreet() { 
      return this.street; 
     } 
    } 

이는 @JoinColumn 및 @JoinColumn에 의해 이루어집니다 ManyToOne 같이

@OneToMany(cascade = CascadeType.ALL) 
@JoinTable(name = "STUDENT_PHONE", joinColumns = { @JoinColumn(name = "STUDENT_ID") }, inverseJoinColumns = { @JoinColumn(name = "PHONE_ID") }) 
public Set<Phone> getStudentPhoneNumbers() { 
return this.studentPhoneNumbers; 
} 

나는 몇 가지를 놓치고 있는가 것은,이 맞거나와 JPA 스펙이 경우 기본 매핑을 정의하기 때문에

그것은 JoinColumn 또는 관절 식을 지정하지 않고 작동
+0

귀하의 질문에 정확히 무엇의 기본 키와 동일한 유형이있다? 모든 것이 작동하는지 테스트하고 문제가 있는지 물어 보시지 않겠습니까? –

+0

@JB ... 답장을 주셔서 감사합니다 .. .. 나는 그것을 실행하고 잘 작동하지만 ... 내 질문은 자동으로 manyToOne 형식 JoinColumn 또는 JoinTable의 주석없이 ..... 작동하는 방법입니다 –

답변

0

이러한 주석이없는 나는 correclty 이해 해달라고 :

2.10.3.2 단방향 ManyToOne 관계

다음 매핑 기본값이 적용

엔티티 A는 이름의 테이블 A에 매핑되는

E 엔티티의 관계 속성 또는 필드 이름 : ntity의 B는 B.라는 테이블에 매핑

표 A 외래 키 열 이름 다음의 연결로 형성되는 테이블 B.에 외부 키를 포함 에이; "_"; 테이블 B의 기본 키 열

외부 키 컬럼의 이름은 테이블 B.

관련 문제