2012-01-31 96 views
0

我有兩個表:獲取外鍵對象的主要解決方案是什麼?

人員:(ID,姓名)

地址:(ID,地址,是PersonID)

這意味着每個人都有一些地址。 我有與每個表和每個外鍵對象的屬性相關的對象。在這個例子中:

Class Persons 
{ 
    int  id; 
    string name; 
} 

Class Addresses 
{ 
    int  id; 
    string address; 
    Persons person; 
} 

當我想讓所有的人與他們的地址我使用左連接。我創建了一個Address類的集合,並使用「person」屬性到達每個Person。

但在某些情況下,有些人沒有任何地址。我如何使用這種方法訪問我的對象中的那些人。這種情況最好的方法是什麼?

感謝,

+0

你爲什麼不使用JPA。 http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html – 2012-01-31 11:31:39

+0

我在Android上使用這種方法 – breceivemail 2012-01-31 11:33:35

+0

這個類的名字應該是「Person」,而不是「Persons」:) – Manish 2012-01-31 11:34:11

回答

0

我搜索,發現這個解決方案:

Class Persons 
{ 
    int  id; 
    string name; 
    AddressesCollection addresses; 
} 

Class Addresses 
{ 
    int  id; 
    string address; 
    Persons person; 
} 
0

你需要的人的集合,包含了所有沒有地址的人。 您也可以創建一個虛擬地址,並將其與所有沒有它的人聯繫起來。

+0

這聽起來像是「Hacky」 – Manish 2012-01-31 11:46:10

+0

這不是一個結構性的解決方案。 :| – breceivemail 2012-01-31 11:50:40

+0

是的,但是你可以使用左連接和合並來完成數據庫中的黑客攻擊。如果您想使用地址訪問人員,您需要虛擬地址。 – 2012-01-31 12:16:17

0

,你應該做的事情是當前映射的逆過程,即,

Class Person 
{ 
    int  Id; 
    string name; 
    Address address; 
} 

Class Address 
{ 
    int  Id; 
    string Address; 
} 

這樣你就可以將人映射到他的地址。如果一個人擁有多個地址,則可以使用一組地址。

對於你的班級名稱而不是Person,而不是Persons,因爲每個對象都指向一個實體。

相關問題