主查询
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"
]
}
]
}
]
}
总结
单层嵌套和多层嵌套,都可以
单层嵌套,就写一层
多层嵌套,就写多层