使用JPA表每子类继承与一对多关系

时间:2013-04-08 16:36:11

标签: hibernate inheritance jpa one-to-many

我有以下情况 -

Table campaign_detail (
    campaign_detail_id (PK),
    campaign_detail_caption,
    campaign_detail_description,
    campaign_detail_type (DISCRIMINATOR)
)

Table campaign_price_detail (
    campaign_detail_id (PK) REFERENCES (campaign_detail), // ONE_TO_ONE with campaign_detail
    campaign_price_amount,
    campaign_price_URL
)

Table campaign_deal_detail (
    deal_id (PK)
    campaign_detail_id REFERENCES (campaign_detail), // MAN_TO_ONE with campaign_detail
    campaign_deal_code,
    campaign_deal_period
)

广告系列有许多详细信息,可以将它们组合在一起作为实体,例如campaign_price,campaign_deal,campaign_contact,campaign_retailers等(总共有9个)。 这些组具有campaign_detail表中的一些常用属性。

我想使用每子类的表继承与campaign_detail及其所有子表。

但是我有一个问题,我不知道如何处理。 大多数子表通过与campaign_detail表的一对一关系相关联。到现在为止还挺好。但是一些(9个中的3个)与campaign_detail的多对一关系相关。例如,一个campaign_detail可能需要多个交易或多个零售商。

那么我如何使用table-per-subclass继承JPA注释来建模这些类。到目前为止,我看到的所有例子都只考虑了一对一的关系。

我正在使用hibernate 4.1.4 Final。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你做不到。继承用于建模关系:Car 车辆。香蕉水果。

如果您有一个广告系列详细信息和多个优惠,那么这种关系就没有意义了。这是一种合成关系,其中一个广告系列详细信息已经多次交易。