0
如何加入通過這個兩個表users
和service
?
@JoinTable
當你通過1張桌子進行關係時,它是完美的。但在這種情況下該怎麼辦?
這是可能的,不需要爲admins
和admin_to_service
創建單獨的實體?
如何加入通過這個兩個表users
和service
?
@JoinTable
當你通過1張桌子進行關係時,它是完美的。但在這種情況下該怎麼辦?
這是可能的,不需要爲admins
和admin_to_service
創建單獨的實體?
您可以嘗試創建視圖以充當聯接表。我不知道你的FK引用是什麼,但這樣的:
create or replace view user_services_vw as
select
a.user_id,
ats.service_id
from
admins a
inner join
admin_to_services ats on ats.some_col. = a.some_col
然後,您可以模型作爲一個簡單的@ManyToMany
。如果關係是隻讀的,這應該可以正常工作,但如果數據需要更新,您可能會遇到問題。
@Entity
public class User {
@ManyToMany
@JoinTable(name = "user_services_vw")
private Set<Service> services;
}
,因爲用戶和服務不具備提供「admin_id」的任何方式(使用admin_to_service表)和不具備提供「ROLE_ID」的方式(使用管理員表),那麼你可以得出結論,你不能模型使用直接的JPA而不引入中間實體。任何JPA文檔顯示如何做OO關係 –
雖然沒有直接映射,但可以使用JPA查詢 –
這個關係是否需要更新? –