• mysql -- collection一对多查询


    数据库表

    角色组表:

    CREATE TABLE `sso_character_group` (
      `group_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色组ID',
      `group_name` varchar(255) DEFAULT NULL COMMENT '角色组名称',
      PRIMARY KEY (`group_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

    角色表:

    CREATE TABLE `sso_character` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
      `name` varchar(255) DEFAULT NULL COMMENT '角色名称',
      `group_id` int(11) DEFAULT NULL COMMENT '所属角色组ID',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

    一个角色组包含多个角色

    两个POJO

    //CharacterGroup.java
    package
    cn.com.hiveview.entity.module.portal; import lombok.Data; @Data public class CharacterCondition { private Integer id; private String name; } //Character.java package cn.com.hiveview.entity.module.portal; import lombok.Data; import java.util.List; @Data public class CharacterGroupCondition { private Integer groupId; private String groupName; private List<CharacterCondition> characterList; }

    controller--mapper层都是直接调用下一层,此处省略

    直接上mapper.xml

     1     <resultMap id="characterGroup" type="cn.com.hiveview.entity.module.portal.CharacterGroupCondition">
     2         <id column="group_id" property="groupId"/>
     3         <result column="group_name" property="groupName"/>
     4         <collection property="characterList" column="{groupId=group_id}" select="getCharacterList"/>
     5     </resultMap>
     6 
     7     <select id="getList" resultMap="characterGroup" parameterType="cn.com.hiveview.entity.module.portal.CharacterGroupCondition">
     8         SELECT group_id,group_name FROM sso_character_group
     9     </select>
    10 
    11     <select id="getCharacterList" resultType="cn.com.hiveview.entity.module.portal.CharacterCondition">
    12         select id,name from sso_character where group_id=#{groupId}
    13     </select>

    结果展示

  • 相关阅读:
    整合SSH遇到的问题
    学习动态代理实现业务层的事务控制遇到的问题
    docker局域网独立IP外网访问配置
    第23次CSP-D题解法
    Nordic Bluetooth 切换到DFU Mode
    MySQL事务、锁和MVCC
    深拷贝和浅拷贝的区别是什么?
    python是如何进行内存管理的
    数据库的事务
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/wulisz/p/11753097.html
Copyright © 2020-2023  润新知