2012-06-04 4 views
1

나는 많은 연관성을 위해 최대 절전 모드를 사용하고있다. 나는 3 개의 테이블 (STUDENT, COURSE 및 STUDENT_COURSE)을 가지고 있습니다. 3 개의 테이블 중 2 개는 주 테이블이고 하나의 테이블은 관계 선박을 제공하기위한 중간 테이블입니다. STUDENT에서 레코드가 삭제되면 해당 매핑이 STUDENT_COURSE에서 삭제됩니다. 내 요구 사항은 심지어 코스 테이블에서 레코드를 삭제해야합니다. 아래와 같이 STUDENT_COURSE 항목을 고려 같이많은 관계가있는 테이블의 레코드를 삭제합니까?

101 COURSE 테이블 (201)에 대응하는 형태 STUDENT 테이블 삭제 상기 표에서 첫번째 엔트리하지만 레코드를 삭제
S-Id C_ID 
101 201 
102 202 

스테이. 그 레코드를 어떻게 지울 수 있습니까? 삭제 쿼리를 실행해야합니까? 많은 관계 선박이 상관하지 않습니까? 다음은 나의 구성입니다.

<set name="course" table="STUDENT_COURSE" 
      inverse="false" lazy="false" fetch="join" cascade="all" > 
      <key> 
       <column name="S_Id" not-null="true" /> 
      </key> 
      <many-to-many entity-name="COURSE"> 
       <column name="C_Id" not-null="true" /> 
      </many-to-many> 
     </set> 

고마워요!

+0

학생과의 관계는 어떻게 생겼습니까? 계단식 = "모두"도 있습니까? – Korgen

+0

@Korgen이 답장을 보내 주셔서 감사합니다. 위의 구성은 학생의 hbm에만 해당됩니다. – user1016403

+0

미안 해요, 물론 옆에있는 말은 ... – Korgen

답변

1

당신은 당신이 같은 당신이 STUDENT_COURSE => 코스도 STUDENT_COURSE의 HBM에서 할 inverse and cascade에 대한 학생 => STUDENT_COURSE 매핑에 학생 HBM의 구성이 필요했던 것처럼 좋아, 나는 학생을 삭제하면 물론 대응 삭제할 맵핑.

관련 문제