2013-08-19 183 views
0

由於亞姆很新冬眠,Hibernate映射一個類到多個表

我想從一個HTML表單捕捉借款人的詳細信息,這種形式大致有45個領域。這些表格數據必須存儲在八個不同的表格中。我們有一對多關係的場景,一個借款人會有多個家庭成員,家庭成員的詳細信息也以同樣的形式提交。記住這一切,我想知道哪些是在hibernate xml映射中執行它的最佳方式。

我是否應該在單個類中填充所有45個字段並映射它,或者我應該爲每個表單獨分類並使用<joined-subclass> ...來映射它?

這是做了,當最終用戶填寫的所有表單數據提交,數據應該存儲在所有八張桌子的最佳解決方案。

表結構

User_details, 
user_asset_details, 
user_income_details, 
user_family_members, 
user_family_details, 
user_misc_details 
+1

'這種形式大致有45 fields'你可能無法改變這一點,這是一個有點它題外話,但這種方式是對單一形式太多的領域! – benzonico

+0

最好是**不使用XML映射,而使用註釋。您應該有多個與OneToOne,OneToMany和ManyToMany關聯關聯的實體:一個借款人擁有多個家庭成員。繼承是一種關係:香蕉是一種果實。 –

+0

其實我有4個標籤,每個標籤包含幾個字段,在下一步按鈕用戶的點擊將被導航到下一個標籤。所以最後當他在最後一個標籤中提交時,它必須被存儲。 – Santosh

回答

0

我沒有得到你怎麼能有場的確切數量內實體但也有一到多域模型中的關係?當用戶有20個家庭成員時會發生什麼? :-)

你應該定義正確的域模型,確定正確的關係,包括其中包含家屬等名單的領域

這種模式應該更對應於您的數據庫架構,包括8臺。

注意join-table是表達數據庫建模中的繼承模式。它絕對不會把一個大類分成更多的表。 Hibernate支持命名component正好相反的模式,可以讓您存儲一個數據庫表中的一個一對一的關係。

當你以這種方式談及模型,也許你會感興趣的domain driven design