【问题标题】:How to join two tables in spring hibernate?如何在春季休眠中加入两个表?
【发布时间】:2020-06-09 02:26:25
【问题描述】:

我有一个使用弹簧休眠技术的网络应用程序。我有基于角色的访问控制,其中用户可能具有访问系统的特定角色。每个用户可能被分配到多个角色。角色被分配了多个权限。我的表结构如下。

role_permission(role_perm_id(PK), role_id(FK), screen_perm_id(FK))
role(role_od(PK),role_name))
screen_perm(screen_perm_id(PK), screen_id(FK), perm_id(FK))
screens(screen_id(PK), screen_name)
permission(perm_id(PK),perm_name)

我想要一个显示角色所有权限的视图页面。在该页面中,我想要一个显示权限的复选框。如果将该权限分配给角色,则选中该权限,如果未分配该权限,则取消选中该权限。我是怎么做到的。我是春季冬眠的新手。请帮忙。

【问题讨论】:

    标签: spring hibernate


    【解决方案1】:
    public class Role{
       @OneToMany(
        mappedBy = "role",
        cascade = CascadeType.ALL,
        orphanRemoval = true)
       Set<Permission> permissions= new HashSet<>();
    }
    public class Permission {
       @ManyToOne(fetch = FetchType.LAZY)
       Role role;
    }
    

    然后你就可以通过 role.getPermissions(); 获取权限了

    【讨论】:

    • 这里只显示分配给角色的权限。我想显示一个角色的所有屏幕的所有权限。如果为角色分配了任何权限,则该复选框将成为票证,并且所有其他权限都将被取消选中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2012-12-05
    相关资源
    最近更新 更多