我對Hibernate相當陌生,需要一些Hibernate映射的幫助。Hibernate使用hbm.xml將多個類映射到一個表
我有4個不同的類,我想映射到一個表中,其中主鍵由來自2個不同類的屬性組成。同時,我只想將每個類的選定屬性映射到本地數據庫中。我希望避免JPA批註並改爲在hbm.xml文件中定義映射樣式。我怎麼做?
採取下面的例子:
public class Tenant implements Serializable {
private final static long serialVersionUID = 1L;
protected List<Rack> rack;
protected String type;
//getters setters
}
public class Rack implements Serializable {
private final static long serialVersionUID = 1L;
protected List<Circuit> circuit;
protected String rackLabel;
protected Boolean excludes;
//getters setters
}
public class Circuit implements Serializable {
private final static long serialVersionUID = 1L;
protected List<CircuitReadings> circuitReadings;
protected String circuitNo;
protected Boolean excludes;
//getters setters
}
public class CircuitReadings
implements Serializable {
private final static long serialVersionUID = 1L;
protected String date;
protected String kva;
protected String current;
protected String kwh;
//getters setters
}
和最終表應包括以下的:以上
type | rackLabel | circuitNo | date | kva | current | energy
「circuitNo」和「日期」應形成複合主鍵。
有人可以告訴我如何映射這個例子嗎?謝謝!
爲什麼要在一個表中添加所有四個類?從他們看的方式來看,所有班級之間都有多對一的關係。將它們全部添加到單個表格中將產生非標準化的表格。這在關係數據庫中通常是一件壞事。 – 2012-01-05 07:07:44
這是因爲我不想將所有屬性存儲到數據庫,並且只需要選定的屬性。我想要的屬性在上面的表格描述中突出顯示。我的解決方案是創建一個單獨的方法,循環訪問「Tenant」對象及其子類,並僅將要存儲到數據庫中的值合併到獨立的類中,例如ClassA的。然後爲ClassA創建一個hbm文件。我知道這樣做並不理想,因此,我正在尋找更優化的解決方案。 – 2012-01-13 07:25:53