mybatis 嵌套List

主查询

xml 复制代码
<!-- 查询车型列表(基于 pdtAliasId 查询) -->
<select id="selectNestedList" resultMap="NestedResultMap">
    SELECT
    t.MAKE,
    t.MODEL,
    t.YEAR

    FROM L_CAR_MODEL_YEAR_${lan} t

第一层嵌套

xml 复制代码
<resultMap id="NestedResultMap" type="com.launch.lcar.model.NestedCarModelResult">
    <result property="make" column="MAKE"/>
    <collection property="models" ofType="com.launch.lcar.model.NestedCarModelResult$ModelDetail"
                resultMap="ModelDetailResultMap"/>
</resultMap>

第二层嵌套

xml 复制代码
<resultMap id="ModelDetailResultMap" type="com.launch.lcar.model.NestedCarModelResult$ModelDetail">
    <result property="model" column="MODEL"/>
    <collection property="years" ofType="java.lang.String" resultMap="YearResultMap"/>
</resultMap>

第三层嵌套

xml 复制代码
<resultMap id="YearResultMap" type="java.lang.String">
    <result column="YEAR"/>
</resultMap>

嵌套实体类

java 复制代码
public class NestedCarModelResult implements Serializable {
    private String make;
    private List<ModelDetail> models;

    public static class ModelDetail implements Serializable {
        private String model;
        private List<String> years;

返回结果

json 复制代码
{
    "code": 0,
    "flag": 0,
    "msg": "success",
    "data": [
        {
            "make": "别克(中国)",
            "models": [
                {
                    "model": "君威",
                    "years": [
                        "2009",
                        "2010",
                        "2011",
                        "2012",
                        "2013",
                        "2014",
                        "2015",
                        "2016",
                        "2017",
                        "2018",
                        "2019",
                        "2020",
                        "2021",
                        "2022",
                        "2023",
                        "2024"
                    ]
                }
            ]
        }
    ]
}

总结

单层嵌套和多层嵌套,都可以

单层嵌套,就写一层

多层嵌套,就写多层

相关推荐
小二·3 小时前
MyBatis基础入门《十五》分布式事务实战:Seata + MyBatis 实现跨服务数据一致性
分布式·wpf·mybatis
小二·3 小时前
MyBatis基础入门《十四》多租户架构实战:基于 MyBatis 实现 SaaS 系统的动态数据隔离
数据库·架构·mybatis
小二·8 小时前
MyBatis基础入门《十六》企业级插件实战:基于 MyBatis Interceptor 实现 SQL 审计、慢查询监控与数据脱敏
数据库·sql·mybatis
小二·8 小时前
MyBatis基础入门《十二》批量操作优化:高效插入/更新万级数据,告别慢 SQL!
数据库·sql·mybatis
计算机学姐14 小时前
基于SSM的宠物领养管理系统【2026最新】
java·vue.js·后端·java-ee·tomcat·mybatis·宠物
气π1 天前
【JavaWeb】——(若依 + AI)-基础学习笔记
java·spring boot·笔记·学习·java-ee·mybatis·ruoyi
Ai东1 天前
[特殊字符] xbatis:重新定义 MyBatis 开发体验
mybatis
期待のcode1 天前
Springboot多数据源配置
java·数据库·spring boot·后端·mybatis
计算机学姐1 天前
基于SSM的网上花店销售系统【2026最新】
java·vue.js·mysql·java-ee·tomcat·intellij-idea·mybatis
TimberWill2 天前
Mybatis一、二级缓存解析
mybatis