2011-08-08 69 views
1

我想探索Hibernate,並在我的項目中使用它而不是JDBC。 我的桌子設計高度規範化。Hibernate主 - 子細節映射

假設,我有這個用例:客戶申請的每項保險都有一個關聯的費率計劃。通常,在RDBMS中,這是使用如下兩個表來實現的。

Table Insurance: 
    id long; 
    accountHolder varchar; 
    ratePlanId int; -->Rate Plan Id is Foreign Key to the RatePlanTable 

Table RatePlan: 
    ratePlanId int; 
    ratePlanDesc varchar; 
    discountRate double; 

現在,我的問題是......是否將此限定爲一種偏愛關係?

我在網上看到的有關onetomany的大多數例子涉及某種集合(例如An Order有產品列表)。而當在課堂上代表被翻譯成下面的時候,我認爲這真的是一對多的情況?

public class Order{ 
    private List products; 
} 

但是我的情況呢?我不認爲這是一個內部人或者我只是被這些例子誤導了?

我該如何爲我的兩個類做一個hbm映射?就我而言,我會創建兩個類來表示這兩個表,但我不確定hbm.xml對於這兩個類的外觀如何。

回答

1

是的,這是一對多的關係,因爲一個費率計劃與許多保險單有關。在實體遍歷中,當您從策略中移除時,您將獲得一個Plan對象,反之,從Plan對象中,您將獲得一個Policy對象列表。

+0

如果是這種情況,那麼在我的Insurance.hbm.xml中,我將如何表示ratePlanId?它會是一個集合還是一個列表或任何其他集合?在這種情況下,你能給我看一個樣本hbm.mapping嗎?感謝您的回覆 –

+0

Hibernate文檔有一些非常清晰的示例(http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-association)。查閱2.2.5.3.1.1。節,這是你的案例的必然結果 - 一個部隊有一套士兵。 – atrain

+0

嗨,那就是我在哪裏有一些困惑..在該鏈接的情況..一個部隊真的有一套士兵,所以它是合乎邏輯的在你的部隊類有一個設置/列表/集合。但就我而言,即使我只能擁有一套費率計劃,我也有一套?對不起,我只是困惑,但我正在學習給你的領導。謝謝 –