级联(数据字典)

news2024/11/24 7:08:27

二级级联:

一:新建两个Bean

父级:

/**
 * @Description 数据字典
 * @Author WangKun
 * @Date 2023/7/25 10:15
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("HW_DICT_KEY")
public class DictKey implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    private Timestamp created;

    private Timestamp modified;

    private String dictKey;

    private String dictName;

    private List<DictItemValue> dictItemValues;
}

子级:

/**
 * @Description 数据字段
 * @Author WangKun
 * @Date 2023/7/25 10:15
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("HW_DICT_ITEM_VALUE")
public class DictItemValue implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    private Timestamp created;

    private Timestamp modified;

    private String dictKey;

    private String itemCode;

    private String itemName;

}

mybatis 或者 mybatisplus

<mapper namespace="com.module.dict.mapper.DictMapper">

    <resultMap id="BaseResultMap" type="com.module.dict.bean.DictKey">
            <result column="dictKey" property="dictKey" jdbcType="VARCHAR"/>
            <result column="dictName" property="dictName" jdbcType="VARCHAR"/>
        <collection property="dictItemValues" ofType="com.module.dict.bean.DictItemValue">
            <result column="dictKey" property="dictKey" jdbcType="VARCHAR"/>
            <result column="itemName" property="itemName" jdbcType="VARCHAR"/>
            <result column="itemCode" property="itemCode" jdbcType="VARCHAR"/>
        </collection>
    </resultMap>

    <select id="queryAllDict" resultMap="BaseResultMap">
        SELECT
            t1.id,
            t1.dict_name AS 'dictName',
            t1.dict_key AS 'dictKey',
            t2.item_name AS 'itemName',
            t2.item_code AS 'itemCode'
        FROM
            hw_dict_key t1
                JOIN hw_dict_item_value t2 ON t2.dict_key = t1.dict_key
    </select>

</mapper>

三级级联:

新建三个Bean

父级:

/**
 * @Description 数据字典
 * @Author WangKun
 * @Date 2023/7/25 10:15
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("HW_DICT")
public class Dict implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    private String key;

    private String name;

    private String parentId;

    private List<DictValue> children;
}

子级:

/**
 * @Description 数据字典
 * @Author WangKun
 * @Date 2023/7/25 10:15
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("HW_DICT_VALUE")
public class DictValue implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    private String key;

    private String name;

    private String parentId;

    private List<DictValueItem> children;
}

孙级:

/**
 * @Description 数据字典
 * @Author WangKun
 * @Date 2023/7/25 10:15
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("HW_DICT_VALUE_ITEM")
public class DictValueItem implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    private String key;

    private String name;

    private String parentId;
}

mybatis 或者 mybatisplus

<mapper namespace="com.module.dict.mapper.DictMapper">

    <resultMap id="BaseResultMap" type="com.module.dict.bean.Dict">
        <id column="id" property="id"></id>
        <result column="name" property="name"></result>
        <result column="key" property="key"></result>
        <collection property="children" ofType="com.module.dict.bean.DictValue">
            <id column="value_id" property="id"></id>
            <result column="value_name" property="name"></result>
            <result column="value_key" property="key"></result>
            <collection property="children" ofType="com.module.dict.bean.DictValueItem">
                <id column="item_id" property="id"></id>
                <result column="item_name" property="name"></result>
                <result column="item_key" property="key"></result>
            </collection>
        </collection>

    </resultMap>
    <select id="queryAllDict" resultMap="BaseResultMap">
        select
            t1.id,
            t1.name,
            t1.key,
            t2.id value_id,
            t2.name value_name,
            t2.key value_key,
            t3.id item_id,
            t3.name item_name,
            t3.key item_key
        from hw_dict t1
                 join hw_dict_value t2 on t2.parent_id = t1.id
                 join hw_dict_value_item t3 on t3.parent_id = t2.id
--         where p.parent_id = '0'
    </select>


</mapper>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/879615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记整理-JS-06-函数

一、函数基本使用 1. 什么是函数 函数就是语句的封装&#xff0c;可以让这些代码方便地被复用。函数具有"一次定义&#xff0c;多次调用"的优点。使用函数&#xff0c;可以简化代码&#xff0c;让代码更具有可读性。 2. 函数的定义和调用 和变量类似&#xff0c;函…

C++:模拟实现list及迭代器类模板优化方法

文章目录 迭代器模拟实现 本篇模拟实现简单的list和一些其他注意的点 迭代器 如下所示是利用拷贝构造将一个链表中的数据挪动到另外一个链表中&#xff0c;构造两个相同的链表 list(const list<T>& lt) {emptyinit();for (auto e : lt){push_back(e);} }void test_…

【ES】【elasticsearch】分布式搜索

文章目录 ☀️安装elasticsearch☀️1.部署单点es&#x1f338;1.1.创建网络&#x1f338;1.2.下载镜像&#x1f338;1.3.运行 ☀️2.部署kibana&#x1f338;2.1.部署&#x1f338;2.2.DevTools ☀️3.安装IK分词器&#x1f338;3.1.在线安装ik插件&#xff08;较慢&#xff0…

ARM汇编快速入门

本文主要分享如何快速上手ARM汇编开发的经验、汇编开发中常见的Bug以及Debug方法、用的Convolution Dephtwise算子的汇编实现相对于C版本的加速效果三方面内容。 前言 神经网络模型能够在移动端实现快速推理离不开高性能算子&#xff0c;直接使用ARM汇编指令来进行算子开发无疑…

ad+硬件每日学习十个知识点(32)23.8.12 (元器件封装、PCB封装、3D的PCB封装)

文章目录 1.元器件封装属性值说明2.PCB封装标准说明&#xff08;M、N、L&#xff09;3.电阻的PCB封装&#xff08;阻焊层&#xff09;4.电感的PCB封装&#xff08;CD、CDRH&#xff09;1.CD31的意思是&#xff0c;直径3mm&#xff0c;高度1mm![在这里插入图片描述](https://img…

【SQL应知应会】索引(二)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 索引 • MySQL版 前言一、索引1.简介2.创建2.1 索引…

Gradio——快速部署可视化人智能应用

前言 Gradio是一个开源的Python库&#xff0c;用于快速构建机器学习和数据科学演示的应用。它可以帮助你快速创建一个简单漂亮的用户界面&#xff0c;以便向客户、合作者、用户或学生展示你的机器学习模型。此外&#xff0c;还可以通过自动共享链接快速部署模型&#xff0c;并获…

IntelliJ IDEA热部署:JRebel插件的安装与使用

热部署 概述JRebel 概述 热部署&#xff0c;指修改代码后&#xff0c;无需停止应用程序&#xff0c;即可使修改后的代码生效&#xff0c;其有利于提高开发效率。 热部署方式&#xff1a; 手动热部署&#xff1a;修改代码后&#xff0c;重新编译项目&#xff0c;然后启动应用程…

【软件测试】Linux系统下安装jdk配置环境变量(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、安装环境 操作…

UGUI事件系统EventSystem

一. 事件系统概述 Unity的事件系统具有通过鼠标、键盘、游戏控制柄、触摸操作等输入方式&#xff0c;将事件发送给对象的功能。事件系统通过场景中EventSystem对象的组件EventSystem和Standalone Input Module发挥功能。EventSystem对象通常实在创建画布的同时被创建的&#xf…

c++杂谈-5

目录 一、一些c11新特性1. decltype关键字及函数后置返回类型2. 函数后置返回类型 二、c的内存模型三、函数指针和回调函数四、函数模版的注意事项 一、一些c11新特性 1. decltype关键字及函数后置返回类型 在C11中&#xff0c;decltype操作符&#xff0c;用于查询表达式的数…

HarmonyOS NEXT新能力,一站式高效开发HarmonyOS应用

2023年8月6日华为开发者大会2023&#xff08;HDC.Together&#xff09;圆满收官&#xff0c;伴随着HarmonyOS 4的发布&#xff0c;华为向开发者发布了汇聚所有最新开发能力的HarmonyOS NEXT开发者预览版&#xff0c;并分享了围绕“一次开发&#xff0c;多端部署” “可分可合&a…

通过Microsoft Loopback Adapter实现虚拟机和物理机的通信

问题 问&#xff1a;不借助路由器或交换机的情况下&#xff0c;能不能实现主机和虚拟及之间两个软件的通信呢&#xff1f;要求主机和虚拟及均有独立的ip地址&#xff0c;从而进行指定源的组播通信。 答&#xff1a;可以。通过借助虚拟网络适配器&#xff0c;不需要路由器或交…

深度思考rpc框架面经系列之三

6 一个rpc框架的请求调用的流程&#xff08;小红书面试&#xff09; 6.1 讲讲rpc调用原理&#xff0c;比如服务怎么发现&#xff0c;怎么调用&#xff0c;提供者怎么响应。怎么去请求&#xff0c;又怎么回来的 一个RPC&#xff08;远程过程调用&#xff09;框架的核心目的是允…

百度飞浆实战-手写数字识别

目录 参考建模过程1、数据加载和预处理2、模型的网络设计和开发模型组网 3、模型训练 代码实战1、打开aistudio找到项目 参考 视频教程 PaddleAPI DOC 建模过程 1、数据加载和预处理 飞桨框架帮助我们将MNIST数据集进行了内置 数据集名称&#xff1a; MNIST 数据集官网 &am…

2023-08-14 LeetCode每日一题(合并二叉树)

2023-08-14每日一题 一、题目编号 617. 合并二叉树二、题目链接 点击跳转到题目位置 三、题目描述 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会…

Android布局【RelativeLayout】

文章目录 介绍常见属性根据父容器定位根据兄弟组件定位 通用属性margin 设置组件与父容器的边距padding 设置组件内部元素的边距 项目结构主要代码 介绍 RelativeLayout是一个相对布局&#xff0c;如果不指定对齐位置&#xff0c;都是默认相对于父容器的左上角的开始布局 常见…

3D沉浸式旅游网站开发案例复盘【Three.js】

Plongez dans Lyon网站终于上线了。 我们与 Danka 团队和 Nico Icecream 共同努力&#xff0c;打造了一个令我们特别自豪的流畅的沉浸式网站。 这个网站是专为 ONLYON Tourism 和会议而建&#xff0c;旨在展示里昂最具标志性的活动场所。观看简短的介绍视频后&#xff0c;用户…

[足式机器人]Part5 机械设计 Ch00/01 绪论+机器结构组成与连接 ——【课程笔记】

本文仅供学习使用 本文参考&#xff1a; 《机械设计》 王德伦 马雅丽课件与日常作业可登录网址 http://edu.bell-lab.com/manage/#/login&#xff0c;选择观摩登录&#xff0c;查看2023机械设计2。 机械设计-Ch00Ch01——绪论机器结构组成与连接 Ch00-绪论0.1 何为机械设计——…

设计HTML5列表和超链接

在网页中&#xff0c;大部分信息都是列表结构&#xff0c;如菜单栏、图文列表、分类导航、新闻列表、栏目列表等。HTML5定义了一套列表标签&#xff0c;通过列表结构实现对网页信息的合理排版。另外&#xff0c;网页中还包含大量超链接&#xff0c;通过它实现网页、位置的跳转&…