zoukankan      html  css  js  c++  java
  • rapid 添加 多对多 步骤 (用户菜单示例)

    rapid 添加  多对多 步骤 (用户菜单示例)

    1.Users添加 private Set<Menus> menus = new LinkedHashSet<Menus>();
    2.生成getter setter
    3.在getter方法上添加注解
     @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
     @JoinTable(joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "MENU_ID") })
     // Fecth策略定义
     @Fetch(FetchMode.SUBSELECT)
     // 集合按id排序.
     @OrderBy("id")
    4.添加非持久化属性getMenuIds方法
     // 非持久化属�性.
     @Transient
     @SuppressWarnings("unchecked")
     public List<Long> getMenuIds() throws Exception
     {
      return ReflectionUtils.fetchElementPropertyToList(menus, "id");
     }

    5.在Menus 添加 private Set<Users> users = new LinkedHashSet<Users>();
    6.生成getter setter
    7.在getter方法上添加多对多被引用注解 ,其中menus为Users中Menus的属性名称
     @ManyToMany(mappedBy = "menus")

    8.在UsersAction中 添加

     private MenusManager menusManager;//通过spring自动注入
     private List<Menus> allMenus; //全部可用角色列表
     private List<Long> checkedMenuIds; //页面中钩选的角色id列表

    9.生成getter setter
    10.在action的操作方法中调用

    edit()方法中
      allMenus = menusManager.getAll();
      checkedMenuIds = users.getMenuIds();
    update()方法
      HibernateWebUtils.mergeByCheckedIds(users.getMenus(), checkedMenuIds, Menus.class);

    11.在页面中添加checkbox list标签
     <s:checkboxlist name="checkedMenuIds"  list="allMenus"  listKey="id" listValue="name" theme="simple"/>

  • 相关阅读:
    php redis 操作大全
    迟到的2017读书计划
    将博客搬至CSDN
    maven安装教程
    liunx centOS6.5安装jdk教程
    centOS6.0虚拟机ip配置
    html网页调用本地exe程序的实现方法:
    org.springframework.beans.factory.BeanCreationException 解决异常错误
    sqlserver查看锁表进程及对锁定的表进行解锁
    tomcat免安装版做成windows系统服务
  • 原文地址:https://www.cnblogs.com/meetrice/p/1513932.html
Copyright © 2011-2022 走看看