문제

최대 절전 모드 / nhibernate를 처음 접했지만 주제에 대한 무지를 실례합니다.

이것이 내 데이터베이스 테이블의 모습입니다.

<bincontents> 
  <id>5873715</id> 
  <title>Video Title</title> 
  <sortorder>0</sortorder> 
  <itemid>23079</itemid> 
  <itemtype>VIDEO</itemtype> 
</bincontents> 
<bincontents> 
  <id>5873716</id> 
  <title>Clip Title</title> 
  <sortorder>1</sortorder> 
  <itemid>131854</itemid> 
  <itemtype>CLIP</itemtype> 
</bincontents>

Where 조항과 일대일을 매핑하는 방법이 있습니까?

따라서 Bincontent 객체에는 비디오 나 클립의 항목 유형이있을 수 있습니다. 이것들은 줄로 키가 있으며 불행히도 그것을 바꿀 수 없습니다.

따라서 ItemType 필드에 "비디오"라고 말하면, 다중 하나의 "비디오"객체를 갖고 싶습니다. .

돕다!

이 경우 많은 것을 사용하고 싶은지 확실하지 않습니다. 아마도 일대일?

도움이 되었습니까?

해결책

상속 후보가있는 것처럼 들립니다. 추상적 인 기본 유형의 Bincontents가있는 경우, 비디오 매핑 만 포함 된 파생 된 클래스의 VideoBincontents와 클립 매핑 만 포함 된 ClipBincontents가 있습니다. ItemType은 차별자입니다. 자세한 내용은 여기를 살펴보십시오. http://www.hibernate.org/hib_docs/reference/en/html/inheritance.html

다른 팁

수업에 비디오와 클립 객체를 모두 가지고 있지 않으며 둘 다 동시에 채워지지 않았는지 확인할 수 없습니까? 현재 클래스 구조와 같은 더 많은 정보가 필요할 수 있습니다. 또한 빈 객체 당 하나의 비디오가 있을까요?

아마도 이것은 당신이 찾고있는 것보다 더 복잡하지만, 아마도 쓰레기통을위한 기본 클래스를 설정하고 비디오 또는 클립 클래스가있을 수있을 것 같습니다. 상속의 계층 구조 당 테이블을 사용하면 기존 테이블 구조를 사용할 수 있습니다.

이렇게하면 각 하위 클래스마다 다른 매핑을 제공 할 수 있습니다.

모든 매핑을 볼 수 있습니다. '모든'매핑을 사용하면 다형성 연관성을 정의 할 수 있습니다.

확인하다 이것 (단락 5.2.4)

어쨌든, 나는 당신의 '도메인'에 익숙하지 않지만 Jim도 그 점이 있다고 생각합니다. 아마도 데이터 모드와 도메인 모델 (가능한 경우)을 검토하고 여기에 어떤 종류의 상속이 적합하지 않은지 확인해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top