我在项目中使用Spring和Hibernate。
假设我有一个USER
表,它通过一个交叉表与ROLE
相关,而ROLE
表又通过一个表与PERMISSION
表相关联交叉表。因此,每个用户可能有多个角色,每个角色可能具有多个权限,这些权限可以在不同角色之间共享。在orm中我会有一个像这样的User类:
class User {
// blah blah properties
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(name="USER_ROLE",
joinColumns={@JoinColumn(name = "USER_ID", nullable = false, updatable = false)},
inverseJoinColumns={@JoinColumn(name = "ROLE_ID", nullable = false, updatable = false)})
private Set<Roles> roles;
}
现在我想要的是在User
bean中包含另一个属性,其中包含用户的权限列表作为字符串(List<String> permissions
)。对我来说最简单的方法是,如果可以在填充属性后立即调用User对象的某个方法。该方法将对角色执行for
,然后对权限执行另一个角色,并将其添加到用户对象的权限列表中。
或许hibernate / spring可以为这个确切的情况提供一些东西?
P.S。 我尝试使用谷歌搜索,但没有成功。