2021-07-27 mybatis 一对多封装进阶 (单字段/单属性封装)
看到标题可能大家有些蒙圈,其实意思就是,一对多的封装的时候,在多的一方,仅有一个字段时候的封装,如下实体类
package com.jovision.mix.upms.service.model;import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;
import java.util.List;/*** 基础数据中心-角色** @author jcc@jovision.com* @date 2020/11/16*/
@Data
@TableName(value = "upms_role")
@AllArgsConstructor
@NoArgsConstructor
public class Role {@TableId(value = "id", type = IdType.ASSIGN_ID)private String id;/*** 角色名称*/@TableField(value = "name")private String name;/*** 用户id集合*/@TableField(exist = false)private List<String> userIdList;/*** @Author FL* @Date 11:44 2021/7/15* @Param [id, name, userIdList] 角色id 角色名称 用户id集合**/public Role(String id, String name, List<String> userIdList) {this.setId(id);this.setName(name);this.setUserIdList(userIdList);}
}
用户id集合,我就想一对多封装的时候,一次性查出来,该怎么写呢?
直接上代码,完整的xml编码
<resultMap id="roleMap" type="com.jovision.mix.upms.service.model.Role"><result column="id" property="id"/><result column="name" property="name"/><collection property="userIdList" ofType="java.lang.String"><constructor><arg column="user_id"/></constructor></collection></resultMap><select id="queryExpiredRoleUserId" resultMap="roleMap">SELECT r.`id`,r.`name`,rel.`user_id`FROM `upms_role` rLEFT JOIN upms_user_role_rel rel ON r.id = rel.`role_id` AND rel.`delete_status` = 0LEFT JOIN `upms_user` u ON u.`id` = rel.`user_id` AND u.`delete_status`=0WHERE r.`delete_status` = 0 AND r.expire_date <![CDATA[<]]> NOW() AND r.`expire_date` > DATE_SUB(CURDATE(),INTERVAL 1 DAY)</select>
其中,重点在
<collection property="userIdList" ofType="java.lang.String"><constructor><arg column="user_id"/></constructor></collection>
只要这样就ok了,搞定了.
查询的结果如是
[{"userIdList":["1410196826816090113","1415885137173929985"],"name":"暂无语音对讲","id":"1410196578928529409"}
]
``
2021-07-27 mybatis 一对多封装进阶 (单字段/单属性封装)相关推荐
- 把一些表单属性封装一个JSON
<!doctype html> <html> <head><meta charset="UTF-8"><title>把一 ...
- 15、mybatis一对多关联查询 collection定义关联集合封装规则及懒加载
文章目录 1.collection定义关联集合封装规则单步查询 1).Dept增加集合属性 2).DeptMapper增加查询接口 3).DeptMapper.xml增加collection配置 4) ...
- ffmpeg之mp4文件解封装截取一段视频并重封装
#include <iostream> #include <fstream> #include <thread>extern "C"{#incl ...
- mybatis 一对多查询 按结果嵌套处理、按查询嵌套处理,以及两者之间的区别
mybatis 一对多查询 按结果嵌套处理.按查询嵌套处理 最近用到一对多查询,记录一下 实体类 public class RegionEntity implements Serializable { ...
- 2021.09.27 MySQL笔记
2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...
- 3.SpringBoot整合Mybatis(一对多)
前言: Mybatis一对多的处理关系: 一个人有好多本书,每本书的主人只有一个人.当我们查询某个人拥有的所有书籍时,就涉及到了一对多的映射关系. 一.添加数据表: 1 CREATE TABLE `b ...
- JAVA新能源汽车故障分析2021计算机毕业设计Mybatis+系统+数据库+调试部署
JAVA新能源汽车故障分析2021计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA新能源汽车故障分析2021计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构 ...
- 一周信创舆情观察(2021.12.27~2022.1.3)
一.一周舆情要点 2021年12月24日,<中华人民共和国科学技术进步法>修订通过,其中第九十一条明确:对境内自然人.法人和非法人组织的科技创新产品.服务,在功能.质量等指标能够满足政府采 ...
- 新手如何理解一个Web应用的构建(2021.07.29更新)
Web应用构建 ==前言== 我为什么写这篇文章? 适合什么样的人看? ==摘要== 步骤汇总 (1)网站定位与功能设定 (2)信息架构 (3)UI设计 (4)应用架构 (5)开发 (6)部署 (7) ...
最新文章
- 第四范式完成C轮融资,金额超10亿元
- R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、ggrepel包来帮忙
- JS大宗师Douglas新书即将开印,就差一个书名了
- Linux curl API 使用 C语言
- 尚硅谷图解Java数据结构和算法四
- jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关...
- 全国计算机等级考试题库二级C操作题100套(第54套)
- python类之高级应用
- C++——random库中的uniform_int_distribution
- windows server 2012/2016 开启桌面图标
- 修复群集无法切换磁盘问题
- linux生成手机号码字典,Linux下的字典生成工具Crunch 创造自己的专属字典
- 51cto shell mysql备份数据库_shell脚本备份MYSQL数据库
- 2018/7/18 HDU 5294 Tricks Device 最短路建图+最小割 训练日记2
- CTGU 2021春-MySQL数据库实验2:基本查询1-2关,共10小题全代码+信息表+通关截图!
- 人工智能专题讲学:开源数据支撑下的人物与装备分析
- 三星手机S8曝光 新机发布或推迟
- 用java在画布上画心形线_Java画心形线
- Java好学吗?现在待遇如何?
- java-php-python-ssm-旅游系统-计算机毕业设计
热门文章
- 小程序生成分享海报图片并保存相册
- java undertow_java – 如何在Undertow中处理HTTP方法?
- 海阳最新计算机招聘信息,海阳找工作|海阳人才网|海阳全职招聘信息-烟台58同城...
- JAVA开发环境配置
- 小米澎湃,性能几何?浅谈版本的性能表现对比
- python3 - 使用 jieba3k 对直播平台房间标题进行分词
- Hive详细介绍及简单应用
- JQueryAjax
- HTML+CSS网页设计期末课程大作——体育拳击(5页)
- CAS、volatile、synchronized