2012-02-10 55 views
0

我有這樣一個表:如何定義一對多處於休眠這個例子

PRD_PRODUCT_RECOMMENDATION 

     GUID DECIMAL(19,0) NOT NULL, 
     PRODUCTGUID DECIMAL(19,0) NOT NULL, 
     RECOMMENDATION VARCHAR(255), 
    CONSTRAINT PK_PRD_RECOMMENDATION_L10N_PK1 PRIMARY KEY (GUID), 
    CONSTRAINT FK_PRD_RECOMMENDATION_L10N_PRODUCT FOREIGN KEY (PRODUCTGUID) REFERENCES PRD_PRODUCT (GUID) 

和另一個表PRD_PRODUCT:

GUID 停產 NEWIMPORT EISIDENTIFIER 放養 原型

如何定義一對多(一種產品有很多推薦)。沒有三維表格保持上述兩個表格之間的關係。

+0

請考慮接受您的其他問題的一些答案,以提高回覆率:http://stackoverflow.com/faq#howtoask – Stedy 2012-02-10 23:06:59

回答

0

簡單:

public class Product{ 
//id and other fields 
    List<Product> recommendations; 

    @OneToMany() 
    @JoinColumn(name = "PRODUCTGUID") 
    public void setRecommendations(List<Product> recommendations){ 
     this.recommendations = recommendations; 
    } 

    public List<Product> getRecommendations(){ 
     return reommendations; 
    } 
} 


public class ProductRecommendation{ 
// id and other fields 
} 

我假設PRODUCTGUID是適當的外鍵的推薦參考。如果不是,您可能需要引入另一個外鍵列。

希望這會有所幫助。

+0

感謝您的快速回復。我是新的休眠,並定義在HBM文件中的關係。我需要每個班級兩個hbm文件嗎?我如何使用裏面的列表和密鑰來獲取推薦信息。你能否在hbm文件中詳細說明這一點...再次感謝 – beetri 2012-02-10 02:06:44

+0

如果你正在編寫.hbm.xml文件,你將需要每個類1個。我更喜歡註釋我的課程,不知道這是否是您的選擇,但我認爲它的工作更清潔。在那個筆記上,對不起,我不認爲應該去編寫一些.hbm.xml文件。 – 2012-02-10 03:19:38