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

  • 相关阅读:
    weak_ptr解决shared_ptr环状引用所引起的内存泄漏[转]
    如何限制对象只能建立在堆上或者栈上(转载)
    为了异常安全(swap,share_ptr)——Effecive C++
    注意类型转换——Effective C++
    http协议
    【java.math.BigInteger】常用函数
    【java.math.BigInteger】【转】常见问题
    【思路,dp,BigInteger】ZOJ
    【Warshall_Floyd】
    【Dijkstra】
  • 原文地址:https://www.cnblogs.com/meetrice/p/1513932.html
Copyright © 2020-2023  润新知