@Data public final class World implements Serializable { private static final long serialVersionUID = 1L; private int id = 0; private name = null; } @Data public final class Province implements Serializable { private static final long serialVersionUID = 1L; private int id = 0; private int countryId = 0; private name = null; } @Data public final class City implements Serializable { private static final long serialVersionUID = 1L; private int id = 0; private int proId = 0; private name = null; }
<resultMap id="countryMap" type="com.main.entity.World">
<id column="map_id"/>
<result column="name"/>
<collection property="provinceList" ofType="com.main.entity.Province" select="findProvince" column="{id=mapId}"/>
</resultMap>
<resultMap id="provinceList" type="com.main.entity.Province">
<id column="pro_id"/>
<result column="name"/>
<collection property="cityList" ofType="com.main.entity.City" select="findCity" column="{id=proId}" />
</resultMap>
<resultMap id="cityList" type="com.main.entity.City">
<id column="city_id"/>
<result column="name"/>
</resultMap>
<select id = "findChina" resultType = "com.main.entity.World" parameterType = "com.main.entity.World" resultMap="countryMap">
SELECT
id, name
FROM
map.country
WHERE
id = #{mapId}
</select>
<select id = "findProvince" resultType = "com.main.entity.Province" parameterType = "com.main.entity.Province" resultMap="provinceList">
SELECT
pro_id AS proId, name
FROM
map.province
WHERE
country_id = #{id}
</select>
<select id = "findCity" resultType = "com.main.entity.City" parameterType = "com.main.entity.City" resultMap="cityList">
SELECT
city_id AS cityId, name
FROM
map.province
WHERE
pro_id = #{id}
</select>
@Mapper
public interface findMapData{
World findChina(Integer id); //调用的是xml中的 <select id = "findChina" /> 这个方法
}

浙公网安备 33010602011771号