2013-07-29 79 views
0

我遇到了需求,我有兩個表,Order和Item之間有Order - > Item之間的「一對多」關聯。但是,沒有外鍵。休眠:沒有foreginkey的關聯映射的優缺點

只是想知道Pojo是否可以按照ORM設計原則設計成具有關聯關係。

除了應用程序中間層必須確保關聯之外,有什麼優點和缺點。

回答

0

根據我的經驗,Hibernate並不關心外鍵。如果您要求Hibernate爲您生成DDL,而不是手動執行,則將它們添加到映射或註釋中時,僅用於生成DDL。儘管有文檔,但我還沒有證實這一點。再次,根據我的經驗,我沒有看到Hibernate使用外鍵。

除了您提到的問題之外,我看不出任何問題。儘管如此,應儘量避免這種情況。

關於目標世界和關係世界,考慮什麼基督教鮑爾和Gavin王「Java持久性與Hibernate」

面向對象的語言表示使用對象 引用協會說;但在關係世界中,關聯被表示爲 作爲外鍵列,具有鍵值的副本(並且約束 以保證完整性)。 這兩個表示之間存在實質性差異...

對象引用本質上是定向的;該協會從一個對象到另一個對象從 。他們是指針...

另一方面,外鍵協會不是天生 定向。導航對關係數據模型 沒有意義,因爲您可以創建與表格連接 和投影的任意數據關聯。面臨的挑戰是將完全開放的數據與獨立於與數據一起工作的應用程序的模型橋接到依賴於應用程序的導航模型,該特定應用程序所需的關聯的受限制視圖 。

所以,我從中得到的是,已經有一個斷開。所以Hibernate不使用外鍵定義對我來說是有意義的。

+0

這個幫助嗎?我可以得到更多幫助嗎? –