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查询 –
这个关系是否需要更新? –