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

简介: rapid 添加  多对多 步骤 (用户菜单示例) 1.Users添加 private Set menus = new LinkedHashSet();2.生成getter setter3.在getter方法上添加注解 @ManyToMany(cascade = { CascadeType.

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 前端开发
JS calc() 动态计算长度函数
JS calc() 动态计算长度函数
716 0
|
运维 监控 Devops
DevOps 的不同阶段
【8月更文挑战第27天】
280 6
|
安全 应用服务中间件 网络安全
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
|
SQL 安全 Java
代码审计-JAVA----javaweb代码审计思路
代码审计-JAVA----javaweb代码审计思路
|
前端开发 JavaScript UED
|
数据采集 存储 数据可视化
基于Python flask的猫眼电影票房数据分析可视化系统,可以定制可视化
本文介绍了一个基于Python Flask框架开发的猫眼电影票房数据分析可视化系统,该系统集成了数据爬取、存储处理、可视化展示和用户交互功能,使用户能够直观地分析和展示电影票房数据,具有高度定制性。
420 0
基于Python flask的猫眼电影票房数据分析可视化系统,可以定制可视化
|
消息中间件 RocketMQ
MetaQ/RocketMQ 原理问题之当消费集群规模较大时,处理分配不到队列的Consumer的问题如何解决
MetaQ/RocketMQ 原理问题之当消费集群规模较大时,处理分配不到队列的Consumer的问题如何解决
178 4
|
Serverless Go C语言
函数计算产品使用问题之如何在Golang运行时环境中解决glibc依赖问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
235 1
|
监控 NoSQL 算法
在Linux中,如何排查死锁问题?
在Linux中,如何排查死锁问题?