我試圖在hibernate中實現多對多的多態關聯。休眠中的多對多表格
我有一個接口Animal
和兩個實施類Cat
和Dog
。我還有另外一類食品,我正在通過數據庫多對多的關係將動物界面與食品類連接起來。我試圖瞭解如何通過像Ruby on Rails實現這樣的多態關聯來映射它。
的多對多關聯應該是這樣的:
-------------------------------------------------
| food_id | animal_type | animal_id |
-------------------------------------------------
我一直工作在這一段時間,我不知道如何在Hibernate中實現這一點。
這將是一個簡單的 - 很多很多 - 表...我正在尋找一些更復雜的東西...因爲動物是一個接口沒有一個動物的唯一ID,而不是類名稱和該特定動物類型的ID用作多鍵... – Nayish
您的界面不應該模擬對象本身。您可以使用hibernate將您的表(包含唯一ID)的動物與使用@table的Java模型進行映射,並且您的接口的標準將用作使用hibernate更新數據庫的數據訪問對象。我建議爲你的情況使用標準模式,因爲它是一種簡單的m-to-m關係。 –
你的解決方案的問題是,如果我決定明天創建一個Pet接口,我把貓,狗和岩石(它不是動物界面),他們所有的動物和寵物將不得不分享一個id序列...然後後來當我決定添加另一個名爲Thing的界面時,我有搖滾,電梯和摩托車,他們也必須使用相同的ID序列,因爲Dog必須具有相同的ID序列,因爲搖滾和搖滾必須與摩托車具有相同的ID。 ..我們可以添加更多的例子。問題是具體的,我怎樣才能創建這種類型的保利協會... – Nayish