1.实体

  1. package com.govmade.govdata.modules.sys.pojo;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Table;
  6. import javax.persistence.Transient;
  7.  
  8. import com.google.common.collect.Lists;
  9. import com.govmade.govdata.common.persistence.BasePo;
  10.  
  11. @Table(name = "sys_role")
  12. public class Role extends BasePo<Role> {
  13. private static final long serialVersionUID = 1L;
  14.  
  15. private Integer companyId;
  16.  
  17. @Transient
  18. private String companyName;
  19.  
  20. private String name;
  21.  
  22. private String enname;
  23.  
  24. private Integer useable;
  25.  
  26. @Transient
  27. private String menuIds;
  28.  
  29. @Transient
  30. private List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表
  31.  
  32. public Role() {
  33. super();
  34. }
  35.  
  36. public Integer getCompanyId() {
  37. return companyId;
  38. }
  39.  
  40. public void setCompanyId(Integer companyId) {
  41. this.companyId = companyId;
  42. }
  43.  
  44. public String getCompanyName() {
  45. return companyName;
  46. }
  47.  
  48. public void setCompanyName(String companyName) {
  49. this.companyName = companyName;
  50. }
  51.  
  52. public String getName() {
  53. return name;
  54. }
  55.  
  56. public void setName(String name) {
  57. this.name = name;
  58. }
  59.  
  60. public String getEnname() {
  61. return enname;
  62. }
  63.  
  64. public void setEnname(String enname) {
  65. this.enname = enname;
  66. }
  67.  
  68. public Integer getUseable() {
  69. return useable;
  70. }
  71.  
  72. public void setUseable(Integer useable) {
  73. this.useable = useable;
  74. }
  75.  
  76. public String getMenuIds() {
  77. return menuIds;
  78. }
  79.  
  80. public void setMenuIds(String menuIds) {
  81. this.menuIds = menuIds;
  82. }
  83.  
  84. public List<Menu> getMenuList() {
  85. return menuList;
  86. }
  87.  
  88. public void setMenuList(List<Menu> menuList) {
  89. this.menuList = menuList;
  90. }
  91. }

2.RoleService定义

  1. /**
  2. * 根据分页查询角色列表
  3. *
  4. * @param page
  5. * @return
  6. */
  7. public List<Role> findList(Page<Role> page) {
  8. Map<String, Object> params = Maps.newHashMap();
  9. params.put("delFlag", Global.DEL_FLAG_NORMAL);
  10. params.put("orderByClause", "id desc");
  11. page.startPage();
  12. page.setParams(params);
  13.  
  14. List<Role> roleList = roleDao.findList(page);
  15. return roleList;
  16. }

3.RoleDao定义

  1. public List<Role> findList(Page<Role> page);

4.XML定义

  1. <resultMap id="roleResult" type="Role">
  2. <id property="id" column="id" />
  3. <result property="companyId" column="companyId" />
  4. <result property="companyName" column="companyName" />
  5. <result property="name" column="name" />
  6. <result property="enname" column="enname" />
  7. <result property="remarks" column="remarks" />
  8. <result property="useable" column="useable" />
  9. <collection property="menuList" ofType="Menu">
  10. <id property="id" column="menuList.id" />
  11. </collection>
  12. </resultMap>
  13.  
  14. <sql id="roleColumns">
  15. a.id,
  16. a.company_id AS "companyId",
  17. a.name,
  18. a.enname,
  19. a.useable,
  20. a.create_by AS "createBy",
  21. a.create_date AS "createDate",
  22. a.update_by AS "updateBy",
  23. a.update_date AS "updateDate",
  24. a.remarks,
  25. a.del_flag AS "delFlag",
  26. c.name AS "companyName"
  27. </sql>
  28.  
  29. <select id="findList" resultMap="roleResult">
  30. SELECT
  31. <include refid="roleColumns" />,
  32. rm.menu_id AS "menuList.id"
  33. FROM (select * from sys_role order by #{params.orderByClause} limit #{startRow}, #{endRow}) a
  34. LEFT JOIN sys_company c ON c.id = a.company_id
  35. LEFT JOIN sys_role_menu rm ON rm.role_id = a.id
  36. WHERE a.del_flag = #{params.delFlag}
  37. </select>
  1.  

mybatis多对多级联查询的更多相关文章

  1. Mybatis中使用级联查询,一对多的查询

    一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...

  2. mybatis多对多关联查询——(十)

    1.需求 查询用户及用户购买商品信息. 2     sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders.orderdetail. ...

  3. mybatis多对多关联查询

    多对多关系 一个学生可以选多门课程,而一门课程可以由多个学生选择,这就是一个典型的多对多关联关系.所谓多对多关系,其实是由两个互反的一对多关系组成.即多对多关系都会通过一个中间表来建立,例如选课表.学 ...

  4. 阶段3 1.Mybatis_09.Mybatis的多表操作_8 mybatis多对多操作-查询角色获取角色下所属用户信息

    一个角色对应多个用户 生成getter和setter 查看两个表的数据 中间表定义了谁有角色,谁没有角色 根据中间表的关系,最终查询出来的列表的数据样子.这需要两个左外链接才能实现功能. 第一个左外链 ...

  5. 阶段3 1.Mybatis_09.Mybatis的多表操作_9 mybatis多对多操作-查询用户获取用户所包含的角色信息

    sql语句以user作为主表 用户的全部信息,以为用户下的角色的.并不是所有的用户都有角色,有角色的就带角色.没角色的就为null 首先修改实体类 定义List<Role> 生成gette ...

  6. mybatis多对一关联

    mybatis多对一关联查询实现 1.定义实体 定义实体的时候需要注意,若是双向关联,就是说双方的属性中都含有对方对象作为域属性出现, 那么在写toString()方法时需要注意,只让某一方输出即可, ...

  7. mybatis级联查询,多对一查询问题

    在使用Mybatis进行多表级联查询时遇到了一个问题:查询结果只有一项,但正确结果是两项.经测试,SQL语句本身没有问题. 在SQL映射文件(XML)中: <!-- 级联查询数据 --> ...

  8. Mybatis 之级联查询 一对多配置

    Mybatis级联 查询相对于hibenate是有点麻烦,但是相应好处也是有的,Mybatis轻量.根据自己要的字段配置方便 一对多配置用   <collection property=&quo ...

  9. Mybatis 级联查询 (一对多 )

    后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...

随机推荐

  1. jQuery attr() prop() data()用法及区别

    .attr(),此方法从jq1.0开始一直存在,官方文档写的作用是读/写DOM的attribute值,其实1.6之前有时候是attribute,有时候又是property..prop(),此方法jq1 ...

  2. Redis常用数据类型底层数据结构分析

    Redis是一种键值(key-Value)数据库,相对于关系型数据库,它也被叫作非关系型数据库 Redis中,键的数据类型是字符串,但是为了非富数据存储方式,方便开发者使用,值的数据类型有很多 字符串 ...

  3. Windows环境下MySQL面试技巧

    对话一: 面试官:重新安装mysql卡在最后一步,怎么解决? 应聘者:第一次安装完mysql,由于各种原因需要重新安装是经常遇到的问题,解决方案如下.              1)在注册表里搜索my ...

  4. 【LOJ2604】「NOIP2012」开车旅行

    [题目链接] [点击打开链接] [题目大意] 从西到东的坐标轴\([1,n]\)上有\(n\)个海拔互不相同的城市,每两个城市之间的距离定义为\(dis(i,j)=|h_i-h_j|\) 小\(A\) ...

  5. EasyPrtSc sec[1.2] 发布!

    //HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...

  6. Horizon7.9部署和克隆问题汇总

    1  基础环境说明 采用Windows server +SQL Server 2014进行部署,对接现有环境中的AD预控,系统版本为Windows server .桌面虚拟化软件版本采用Horizon ...

  7. Android_(游戏)打飞机01:前言

    (游戏)打飞机01:前言 传送门 (游戏)打飞机02:游戏背景滚动 传送门 (游戏)打飞机03:控制玩家飞机 传送门 (游戏)打飞机04:绘画敌机.添加子弹   传送门 (游戏)打飞机05:处理子弹, ...

  8. Spark指标项监控

    监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要 ...

  9. sqlmap自动注入 --REQUEST

    --delay=“参数” 每次http(s)请求之间的延迟时间,浮点数,单位为秒,默认无延迟 --timeout=“参数” 请求超时,浮点数,默认为30秒 --retries=“参数” http(s) ...

  10. MongoDB4和MysSQL5.7的读/写和事务处理速度简单对比

    系统环境: Ubuntu 18.04 数据库 MysSQL5.7/MongoDB4.0 插入的数据为随机生产,不重复. MySQL使用的连接库是 sqlalchemyMongoDB使用的连接库是pym ...