如何将一个对象中的List对象添加为子集,且父结构不存在重复数据
有这样一个需求,把一个客户名下的联系人构建成下拉树结构。如 :
A公司
----联系人:张三
----联系人:李四
B公司
----联系人:王五
----联系人:赵六
客户数据结构
CREATE TABLE `os_customer` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(20) DEFAULT NULL COMMENT '客户公司名', `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id', `create_user` bigint(20) DEFAULT NULL COMMENT '创建人', `create_time` datetime(3) DEFAULT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '更新人', `update_time` datetime(3) DEFAULT NULL COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识(0:否 1:是)', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='客户表';
已添加数据

客户-客户联系人表
CREATE TABLE `os_customer_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `customer_id` bigint(20) DEFAULT NULL COMMENT '客户公司id', `user_id` bigint(20) DEFAULT NULL COMMENT '客户联系人id', `del_flag` tinyint(1) DEFAULT NULL COMMENT '是否删除(0:否 1:否)', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='客户联系人-客户公司联系表';
已添加数据

客户联系人表
CREATE TABLE `sys_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',

在数据库操作中,面临一个任务,即如何构建一个客户下的联系人树结构,确保父级结构中没有重复数据。原有的尝试通过MySQL联表查询导致数据重复。解决方案是使用MySQL结果集的一对多映射,将联系人作为子列表存储在每个客户对象中,从而避免了Java遍历去重的复杂性,并成功生成了期望的树形结构。
最低0.47元/天 解锁文章
45

被折叠的 条评论
为什么被折叠?



