我有以下對象模型:參考從列在另一個表中的對象
class ObjectA{
public string Description {get;set;}
}
class ObjectB{
public string Description {get;set;}
public ObjectA A {get;set;}
}
class ObjectC{
public string Description {get;set;}
public ObjectB B {get;set;}
}
class ObjectD{
public string Description {get;set;}
public ObjectC C {get;set;}
public ObjectA A {get;set;}
}
我的表如下所示:
答:ID(INT),描述(字符串)
B:ID(INT),描述(字符串),A_ID(INT)
C:ID(INT),描述(字符串),B_ID(INT)
D:ID(int),DESCRIPTION(字符串),C_ID(int),A_ID(int)
在表D中A_ID是表A的主鍵的外鍵。最初這樣做是爲了您可以從ObjectD
輕鬆訪問ObjectA
:ObjectD.A
。這導致來自表A的ID必須被添加到想要以這種方式去訪問ObjectA
的每個表中(想象具有ObjectE
和ObjectF
,都想要容易地訪問ObjectA
)。在這種情況下,ObjectB
將始終引用ObjectA
。
我想擺脫所有表格中對A_ID的引用,但我希望能夠從我的類中輕鬆訪問ObjectA
。我知道我可以做ObjectD.ObjectC.ObjectB.ObjectA
在需要的時候得到ObjectA
,但這似乎打敗了延遲加載我的對象的目的。
我該如何映射我的ObjectD
,這樣我可以有ObjectA
直接訪問,而「在ObjectD
的ID的表有ObjectA
?
注意:我使用hbm/xml文件來映射我的類。