我想知道是否可以很好地將公共實體與JPA映射。如何映射公共實體
什麼是我的共同實體?說我的許多域名實體都有一個相關的圖像。所以,會有像UserProfile -> Image
(個人資料圖片)或Event ->* Image
(促進活動的圖像,一對多)之類的關係。
使用純SQL我可以有一個image
表owner_id
列控股UserProfile#ID
或Event#ID
。因爲我永遠都不需要找到圖片的所有者,而是將圖片發給所有者,所以我不在乎我無法立即分辨圖片5是個人資料圖片還是事件圖片。
我想在JPA層面上,只要我沒有一對多或多對一的關係到Image
,因爲他們需要一個反向引用來處理相同的「黑客」。是的,這是問題所在。我無法創建回參考。
想到的唯一可行的方法是創建一個包含所有常見Image
字段的abstract Image
,然後爲每個關係創建一個具體的子類。合理?
「我不太明白你如何使用」純SQL「方法:如果你想獲得事件#5的圖像,你也可以得到UserProfile#5的圖像,對吧? 啊,對了,忘了提及我們使用系統範圍內唯一的ID。 –
對於'UserProfile - > Image'的情況,我最終使用了一對一的反向關係(即在user_profile表中存儲爲外鍵的圖像ID)。 –