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"/>

  • 相关阅读:
    函数式编程
    javascript RegExp类型 学习小记
    javascript Date类型 学习笔记
    post 提交数据
    git学习笔记
    Winform DevExpress控件库(一) 使用SplashScreenManager控件定制程序加载页面
    .net 对json数据进行读取
    [WPF]TextTrimming截断后,ToolTip显示完整信息
    删除程序自身
    c/s项目记住账号密码功能
  • 原文地址:https://www.cnblogs.com/meetrice/p/1513932.html
Copyright © 2011-2022 走看看