mysql多对一[自用]

这篇博客探讨了MyBatis中自定义ResultMap的使用,详细解释了如何通过`selectNodeByApplyNo`方法获取`AppNodeMap`对象,该对象映射了数据库字段与实体类属性。同时,展示了如何在ResultMap中配置集合属性,以及如何通过`<collection>`标签引用DAO层的子查询方法。博客还包含了两个具体的SQL查询,用于获取节点信息和子节点列表。
摘要由CSDN通过智能技术生成

(估计很多是错的,后面更了解了更正)
dao层调用’selectNodeByApplyNo’方法,返回格式为’AppNodeMap’(此格式为根据实体类自定义的)
其中的result标签为实体类的属性,column为数据库中字段,
collection标签为实体类下的list集合属性,ofTyype为list集合的类型,select为调用的dao层方法,column为调用dao层方法时传入的字段

 <resultMap id="AppNodeMap" type="com.bootdo.apply.domain.AppNode">
    <result column="node_code" property="nodeCode" jdbcType="VARCHAR" />
    <result column="apply_no" property="applyNo" jdbcType="VARCHAR" />
    <result column="flow_code" property="flowCode" jdbcType="VARCHAR" />
    <result column="node_name" property="nodeName" jdbcType="VARCHAR" />
    <result column="status" property="status" jdbcType="INTEGER" />
    <collection property="infoList" javaType="java.util.ArrayList" ofType="com.bootdo.apply.domain.AppChildrenNode"
                select="com.bootdo.apply.dao.FlowStepDao.getNodeList" column="{nodeCode = node_code , applyNo = apply_no}" />
  </resultMap>

  <select id="getNodeList" resultType="com.bootdo.apply.domain.AppChildrenNode">
    select
      s.appr_user_id,s.appr_user_name, s.update_time, s.appr_content, s.is_appr
    from
      hxl_ticket_flow_step s
        INNER JOIN hxl_ticket_flow_node n on s.flow_code = n.flow_code and s.node_code = n.node_code
    where s.node_code = #{nodeCode}
      AND apply_no = #{applyNo}
    group by s.appr_user_id
  </select>

  <select id="selectNodeByApplyNo" resultMap="AppNodeMap">
    select
      s.flow_code,s.node_code,s.status,n.node_name,s.apply_no
    from
      hxl_ticket_flow_step s
        INNER JOIN hxl_ticket_flow_node n on s.flow_code = n.flow_code and s.node_code = n.node_code
        left JOIN sys_user u on s.appr_user_id = u.user_id
    where s.flow_code = #{flowCode}
      AND apply_no = #{applyNo}
      <if test="num == 1">
        and s.node_code != 'kaishi'
        and s.node_code != 'shenqing'
        and s.node_code != 'jieshu'
      </if>
      and n.company_id = #{companyId}
    group by node_code order by n.id
  </select>

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值