0
ID와 제목이있는 Article이라는 단 하나의 개체 (예제의 경우)가있는 CMS가 있다고 가정 해보십시오. 이 CMS 구현은 프레임 워크의 일부가되어 라이브러리로 사용됩니다 (예 : CMSFactory.CMS.SaveArticle (a);원본 매핑을 변경하지 않고 확장 개체에 대한 Nhibernate 질문
문제는 프로젝트 요구 사항에 따라 기사 개체가 SomeDate와 같은 필드가 더 많을 수 있다는 것입니다. 이 관계를 선언하고 기본 CMS 라이브러리를 변경하지 않고 (추가 매핑을 선언 할 수는 있지만) 모든 추가 (프로젝트 종속적) 필드로 기사를 저장하는 방법이 있습니까?
class SpecialArticleForThisProject: Article {
public DateTime SomeDate {get;set;}
}
을 그리고 three inheritance mapping strategies 중 하나를 사용하여 SpecialArticleForThisProject
지도 :
이것은 내 원래 접근 방식이지만 신속하게 되돌릴 수 있습니다. 이러한 상속 매핑 전략에서 '테이블 당 구체적인 클래스'만 사용하면 원래 매핑/개체를 그대로 유지할 수 있습니다. 문제는 원래 매핑의 모든 속성을 포함하는 매핑 파일을 다시 작성해야한다는 것입니다. 테이블은 확장 개체를 나타내지 않고 모든 속성을 나타내므로 스키마도 변경됩니다. 나는 여기에서 완전히 벗어나고 있는가? – Yannis
"서브 클래스, 유니온 서브 클래스 및 조인 서브 클래스 매핑을 별도의 매핑 문서에서 hibernate-mapping 바로 아래에 정의 할 수 있습니다. 이렇게하면 새로운 매핑 파일을 추가하는 것만으로 클래스 계층을 확장 할 수 있습니다. 이전에 매핑 된 수퍼 클래스의 이름을 지정하는 하위 클래스 매핑에서 extends 속성을 지정해야합니다. " 원래 매핑을 변경할 필요가 없습니다. –