순환 의존성이있는 2 개의 테이블이 있습니다. A Title
은 Element
초이며 차례로 각 Element
은 경로의 Title
을 가리 킵니다. ElementDAO매핑의 순환 종속성은 어떻게 해결합니까?
내가 믿을 :
요소가 매핑되지 않은 클래스를 참조하는 테이블의 연관 : 나는
NHibernate.Cfg.Configuration
의 내 인스턴스BuildSessionFactory()
를 호출 할 때그러나, 나는 다음과 같은 예외를받을 순환 종속성의 결과입니다 (요소를 참조하므로 제목을 먼저 매핑 할 수 없으며 제목을 모른 채 요소를 매핑 할 수 없습니다).
질문 : 어떻게 순환 종속성을 해결하기 위해 두 개의 매핑을 결합합니까?
관련 데이터 (및 코드 조각) 다음과
제목
- 아이디 (기본 키)
- 이름
요소
- id_Title (외래 키)
- 이름
- id_Title_Child (외래 키)
그들은과 같이 데이터 구조를 나타냅니다
내 코드 :
TitleDAO :
public class TitleDAO{ public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual ICollection<ElementDAO> Elements { get; set; } }
TitleDAO 매핑 :
<class name="TitleDAO" table="Title" lazy="true"> <id name="Id"> <generator class="identity"/> </id> <property name="Name"/> <set name="Elements" table="Element" lazy="true"> <key column="id_Title"/> <many-to-many class="ElementDAO"/> </set> </class>
ElementDAO :
public class ElementDAO{ public virtual string Name { get; set; } public virtual TitleDAO Child { get; set; } }
ElementDAO 매핑 :
<class name="ElementDAO" table="Element" lazy="true"> <property name="Name"/> <many-to-one name="Child" class="TitleDAO" column="id_Title_Child"/> </class>