Zoe_ 2015-06-24 09:07
浏览 1511

Hibernate JPA 配置多对多问题

SysUser.java

@ManyToMany(fetch = FetchType.EAGER, targetEntity = SysRole.class)
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@JoinTable(name = "SYS_USER_ROLE", 
        joinColumns={ @JoinColumn(name="USER_ID",referencedColumnName="ID")},
        inverseJoinColumns={@JoinColumn(name="ROLE_ID",referencedColumnName="ID")})
private Set<SysRole> roles;

** SysRole.java**

    @ManyToMany(fetch = FetchType.EAGER, targetEntity = SysMenu.class)
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@JoinTable(name = "SYS_ROLE_MENU", schema="VIDS",
        joinColumns = { @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID") }, 
        inverseJoinColumns = { @JoinColumn(name = "MENU_NAME", referencedColumnName = "MENU_NAME") })
private Set<SysMenu> menus;
以上就是我的所有配置
测试:
UserService userService  =  (UserService)SpringContextUtils.getBean("userService");
    SysUser user = userService.getUserByUsername("zhangsan");
    System.out.print(":::::"+user.getUserName()+"\t");
    Iterator<SysRole> roles = user.getRoles().iterator();
    while (roles.hasNext()) {
        SysRole role = roles.next();
        System.out.print(role.getName()+"\t");
            Iterator<SysMenu> menus = role.getMenus().iterator();
            while (menus.hasNext()) {
                SysMenu menu = menus.next();
                System.out.print(menu.getName()+"\t");
            }
            System.out.println();
        }
    }

    输出结果
    :::::zhangsan   admin   
    为毛menus取不到?
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘