2013-07-25 4 views
0

Hibernate에서는 각각 @OneToMany 또는 @ManyToOne 어노테이션을 통해 일대 다 또는 역 다 대일을 지정할 수 있습니다. 그러나 예에서 볼 수 있듯이 A와 B를 연결할 때마다 B를 A와 연결해야합니다. 예를 들어, TeacherCourse과 일대 다 관계를 갖고 있으면 (교사가 여러 과목을 가르 칠 수 있음)최대 절전 모드 OneToMany 및 ManyToOne?

teacher.getCourses().add(mathCourse); 
teacher.getCourses().add(historyCourse); 

뿐만 아니라 :

mathCourse.setTeacher(teacher); 
historyCourse.setTeacher(teacher); 

아니면 그냥 그들에게 단방향 관련 (따라서 당신이 관계의 위의 세트 중 하나를 선택할 수 있도록)하기에 충분해야합니까? 다른 말로하면 :

teacher.getCourses().add(mathCourse); 
teacher.getCourses().add(historyCourse); 

왜/왜 안 되겠습니까? 미리 감사드립니다!

+0

를 참조하십시오 관계의 한쪽에 그것을 추가하십시오. 또한 양방향 관계가 반드시 필요한 것은 아닙니다. –

답변

0

이 경우 단방향 관계 만 추가 할 수 있습니다. 한`mathCourse`가 지속 된 개체를 한, 당신은 단지 필요,

@Entity 
@Table(name = "contact") 
public class Contact implements Serializable { 

@ManyToOne 
        @JoinColumn(name = "companyId") 
        private Company company; 

아래의 샘플 ... } 예를 들어

@Entity 
@Table(name = "company") 
public class Company implements Serializable { 
  
  @ManyToOne 
  @JoinColumn(name = "statusId") 
  private CompanyStatus status; 
    
  ... 
    
 } 
+0

감사합니다. @vicky (+1) - 여기에서 단방향 및 양방향 관계의 차이점을 설명 할 수 있습니까? 두 가지의 이점은 무엇이며, 두 가지 모두 기본 테이블 구조에 어떤 영향을 미칩니 까? 다시 한 번 감사드립니다! –

+0

양방향 관계는 양방향으로 탐색 액세스를 제공하므로 명시 적 쿼리없이 상대방에 액세스 할 수 있습니다. 또한 양방향으로 계단식 옵션을 적용 할 수 있습니다. 이걸 확인해주세요, [link] http://powerdream5.wordpress.com/2007/10/18/uni-directional-or-bidirectional/ [link] – spukar

관련 문제