나는 다음과 같은 개체 모델을 가지고 많은 아이들과 후손NHibernate에 매핑 문제
- 최상위 추상 클래스
Element
. - A 클래스
Event
. - 각
Element
은Event
s의 자루를 포함한다. - 각
Event
에는 부모Element
에 대한 포인터가 있습니다.
지금까지 - 예쁜 standart 일대 다 관계.
하지만 테이블 당 구체적인 클래스 전략을 사용하고 싶습니다. 따라서 클래스 Element
은 데이터베이스에 매핑되지 않습니다. 이 방법으로 해결하려고 노력했습니다. 각각의 구체적인 자손 은 자체 가방 Event
을 정의합니다. 이 문제는 각 <bag>
요소에 <key>
요소가 포함되어 있다는 것입니다. 이 키는 Parent
속성이 Event
임을 나타냅니다. 또한 Event
테이블의 Parent
열을 Bag이 들어있는 테이블의 외래 키로 만듭니다! 그러나 하나의 열은 여러 테이블에 대한 외래 키가 될 수 없으며 삽입시 예외가 발생합니다.
나는 또한 Event
테이블의 Parent
필드에 many-to-any 종류의 필드를 만들려고했습니다. 그게 효과가 있었어. 그러나 그 관계를 양방향으로 만들고자 할 때, 즉, Element
의 자손에게 가방을 덧붙이고 싶을 때 나는 같은 문제로 돌아온다. Bag => foreign key => insert시 예외.
나는이 케이스가 그렇게 독특하지 않을 것이라고 확신합니다. 도움을 주셔서 감사합니다.