0
請你幫我找出了以下問題更好的解決方案...... 有一個在我的域模型的層次:轉換類型與NHibernate亞型/休眠
class Document {
Int Id;
String Title;
}
class Agreement : Document {
DateTime Signed;
}
持久的策略是表每類。即2表:「文檔」(Id,...)和「協議」(Fk_document,...)
第一個操作是文檔註冊。此時我不知道文件的真實類型。所以我創建了新的文檔並填寫了它的屬性「標題」。
過了一段時間後,我收到附加信息。根據它,以前登記的文件實際上是在某個日期簽署的協議。現在我可以填寫「簽署協議」的財產。
但要做到這一點,有必要以某種方式將類型從文檔轉換爲協議。我能做出這樣的SQL呼叫:
INSERT INTO AGREEMENTS (FK_DOCUMENT, SIGNED_DATE) VALUES (1111111, TO_DATE('01-01-2000'))
(其中「1111111」是標識,其休眠分配,同時節省它第一次記錄)
我相信這是不是最好的辦法了!但我找不到其他人... 謝謝!
(我想出了這個例子,真正的用例是相當困難的,我不想拖累的問題。文件必須儘快保存)
謝謝!總的來說,我同意你的看法。在未來的版本中,我將添加一個類似於類別的模型。因此Document會包含一個類似AgreementCategory的屬性,其中包含協議的屬性。這將是一種架構決定。但現在的問題是 - 如何用Nhibernate方法「改變班級」(如果可能的話)。 – barser 2010-12-10 06:37:58