mybatis迭代循环查询任意级树形结构

mybatis迭代循环查询任意级树形结构

一:实体类封装@JsonIgnoreProperties(value = { “hibernateLazyInitializer”, “handler” })避免查询死循环

public class LineLoss {
@ApiModelProperty(value=“租户ID”)
private String tenantId;
@ApiModelProperty(value=“线损分级id”)
private Long clId;
@ApiModelProperty(value=“线损分级父id”)
private Long clpId;
@ApiModelProperty(value=“线损分级名称”)
private String epTizone;
@ApiModelProperty(value=“线损分级级别(1,2,3,4)”)
private String depType;
@ApiModelProperty(value=“结构排序”)
private String startTime;
@JsonIgnoreProperties(value = { “hibernateLazyInitializer”, “handler” })
List children;
}

二:mybatis迭代查询

<resultMap id="BaseTreeResultMap" type="com.tl.sesa.server.model.LineLoss.LineLoss">
        <result column="TENANT_ID" property="tenantId"/>
        <result column="CL_ID" property="clId"/>
        <result column="CL_P_ID" property="clpId"/>
        <result column="EP_TIZONE" property="epTizone"/>
        <result column="DEP_TYPE" property="depType"/>
        <result column="START_TIME" property="startTime"/>
        <collection column="CL_ID" property="children" javaType="java.util.ArrayList"
                    ofType="com.tl.sesa.server.model.LineLoss.LineLoss" select="getNextNodeTree"/>
    </resultMap>


<resultMap id="NextTreeResultMap" type="com.tl.sesa.server.model.LineLoss.LineLoss">
    <result column="TENANT_ID" property="tenantId"/>
    <result column="CL_ID" property="clId"/>
    <result column="CL_P_ID" property="clpId"/>
    <result column="EP_TIZONE" property="epTizone"/>
    <result column="DEP_TYPE" property="depType"/>
    <result column="START_TIME" property="startTime"/>
    <collection column="CL_ID" property="children" javaType="java.util.ArrayList"
                ofType="com.tl.sesa.server.model.LineLoss.LineLoss" select="getNextNodeTree"/>
</resultMap>

<sql id="Base_Column_List">
    TENANT_ID,
    CL_ID,
    CL_P_ID,
    EP_TIZONE,
    DEP_TYPE,
    START_TIME
</sql>

<select id="getNextNodeTree" resultMap="NextTreeResultMap">
    SELECT
    <include refid="Base_Column_List"/>
    FROM c_line_loss_info
    WHERE CL_P_ID = #{CL_ID}
</select>

<select id="getNodeTree" resultMap="BaseTreeResultMap">
    SELECT
    <include refid="Base_Column_List"/>
    FROM c_line_loss_info
    WHERE CL_P_ID = #{clpId}
</select>

二:mapper层只需调用getNodeTree

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值