2009-03-12 4 views
0

우리는 클래스 (Module)라는 이름의 클래스가 그 이전 클래스 인 Module 객체와 관련이 있거나있을 수없는 관계를 정의하고자합니다. 선행자가 없거나 전혀 없을 수 있습니다.Nhibernate 자신과 클래스를 일대일로 매핑하기

public class Module 
{ 
    public int Id 
    { 
     get; 
     set; 
    } 

    // other stuff here 

    public Module Predecessor 
    { 
     get; 
     set; 
    } 
} 

그리고 그 선행이 때문에 같은 타입의 모듈의 속성입니다, 그래서 우리는 우리의 매핑을 정의 : 클래스는 다음과 같습니다 매핑 할 수 없다는 대한

<class name="Module"> 
    <Id name="Id"> 
     <generator class="native/> 
    </Id 
    <property name="Predecessor" type="Module" "unique="true"/> 
<class> 

그러나 우리는 점점 불만 "모듈"유형을 찾을 수 없기 때문에 컴파일하십시오. 우리는 아무 소용이 클래스

type="STC.EI.JobSubmissionSystem.Data.Domain, STC.EI.JobSubmissionSystem.Data" 

의 클래스

type="STC.EI.JobSubmissionSystem.Data.Domain" 

및 완전한 이름의 긴 이름을 노력했다. 내 질문입니다 :

우리가 제대로 매핑하고 있습니까, 그렇지 않으면 우리가 어떻게 제대로 매핑합니까? 당신이 관계를 정의하는 테이블의 열을 필요로

<class name="Module"> 
    <Id name="Id"> 
     <generator class="native"/> 
    </Id> 
    <many-to-one name="Predecessor" class="Module" column="predecessor_id" /> 
<class> 

참고 :

답변

2

당신은 many-to-one 요소를 사용할 수 있습니다.

+0

올바른 내용입니다. 방금 컴파일하지 않는 이유는 'type'속성에 도메인 클래스를 지정할 수 없다는 점입니다. 당신은 'class'속성 (many-to-one과 같은)을 지원하는 요소들 중 하나를 사용해야한다. –

+0

@ 대린 - 아, 정보 주셔서 감사합니다.이 솔루션이 효과가있었습니다. @ 스튜어트 - 유용한 팁, 감사합니다! 원래 매핑을 사용하여 유형을 찾을 수 없다는 오류가 많이 발생했습니다. –

관련 문제