2017-07-26 71 views
0

一對域實體類B1和B2,它們中的一個大多鏡像另一個,並共享其對應的ID。由於系統要求,它們需要映射到兩個數據庫表。 B1和B2都與另一個實體C有一對多的雙向關係。在關係的「多」一側,實體C知道與B1和B2的關係。由於B1和B2之間的相似性,包括實體ID,我想知道我是否可以創建一個抽象實體類,並讓實體C僅引用一個實體。查看JPA映射繼承後,我覺得沒有合適的解決方案。嵌入式類也可能不適合。如果我真的想在C中使用一個實體引用路由,我可能需要添加一個實體ID屬性,它將B1或B2引用到實體C,但未定義B1或B2和C之間的任何關係。有什麼更好的方法?一個實體對兩個相似實體的引用

回答

0

如果您願意在B1 & B2之間放置一個@OneToOne映射,您可以輕鬆地給C並鏈接到B1或B2。 A @OneToOne似乎最合適,因爲B1 & B2共享相同的標識符。

+0

感謝您的輸入。 B1和B2之間鏡像關係的主要原因是它們應該位於兩個不同的應用程序/服務中。我們目前正在構建一個龐大的應用程序,而一個理想的方法是一個微服務系統。由於考慮,我沒有考慮B1和B2之間的一對一關係。 – vic

+0

是否有可能將所有鏡像屬性提取到它們自己的'@ Entity'中,然後在B1和B2上創建'@ ManyToOne'引用?只是拋出想法。 – ryan2049

+0

謝謝你的想法。這種方法可以適用於其他場景,但不適用於此場景。它們是核心域對象,我們儘量設計它們以儘可能減少碎片。 – vic

相關問題