@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" /> 这个方法
}