2012-02-10 51 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