实体类
@Data
@TableName("area")
public class Area extends BaseEntity {
private static final long serialVersionUID=1L;
@TableId(value = "code", type = IdType.ID_WORKER)
private String code;
private String name;
private Integer showorder;
private String parentcode;
private Integer level;
@TableField(exist = false)
private List<Area> children;
}
xml
<resultMap id="BaseResultMap" type="com.xp.project.demo.entity.Area">
<id column="code" property="code" />
<result column="name" property="name" />
<result column="showorder" property="showorder" />
<result column="parentcode" property="parentcode" />
<result column="level" property="level" />
<collection property="children" column="code" ofType="com.xp.project.demo.entity.Area"
select="getChildrenArea">
</collection>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
code, name, showorder, parentcode, level
</sql>
<select id="getChildrenArea" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from area where parentcode = #{code}
</select>
<select id="getAreaList" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
area where parentcode = 0
</select>
Dao 接口
public interface AreaMapper extends IBaseMapper<Area> {
List<Area> getAreaList();
}
效果可实现无线递归
