使用EclipseLink 2.5.1。
角色是单表多租户。每个租户都有自己的角色。 用户不是多租户,由所有租户共享。
用户/角色:ManyToMany映射。
用户拥有一系列角色:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "UserRole",
joinColumns = {@JoinColumn(name = "uId")},
inverseJoinColumns = {@JoinColumn(name = "rId")})
public Set<Role> getRoles() {
return roles;
}
角色没有对用户的引用。
<entity class="Role" >
<multitenant>
<tenant-discriminator-column name="tenantId" context-property="tenant.id"
discriminator-type="INTEGER"/>
</multitenant>
</entity>
用户不是多租户。
在一个租户中列出用户时,用户的角色应限制为该租户。 但JPA会在所有tetants中返回该用户的所有角色。
如何解决这个问题?感谢。