• MyBatis 递归案例


    id:命名空间唯一标识,可以被用来引用这条语句

    column:数据库表名的字段名称,也可以是sql语句As后命名的名称

    property:实体类中定义的对象的名称

    parameterType:将会传入这条语句的参数类的完全限定名或者别名

    resultType:从这条语句要返回的期望类型的类的完全限定名或别名(这里注意下集合类型,应该是集合可以包含的类型,不能是集合本身),重要:使用resultType或resultMap,但不能同时使用。

    resultMap:命名引用外部的resultMap,其名称要和外部的resultMap元素的ID名称一致,用于映射其结果到实体类指定对象中。


    单个参数的递归查询:

    1. <resultMap id="treeCatByAncestry" type="com.lc.mono.module.camas.controller.admin.assetsManagement.vo.ComponentDistributeResVO">
    2. <id column="id" property="id">id>
    3. <result column="title" property="name">result>
    4. <collection property="child" column="{id=id}" ofType="com.lc.mono.module.camas.controller.admin.assetsManagement.vo.ComponentDistributeResVO" select="getTreeCatByAncestry">collection>
    5. resultMap>
    6. <select id="getTreeCatByAncestry" resultMap="treeCatByAncestry">
    7. SELECT
    8. id, title
    9. FROM camas_finger_categories WHERE ancestry = #{id} AND published = 1
    10. select>

    多个参数的递归查询:

    1. <resultMap id="treeProvinces" type="com.mono.module.camas.controller.admin.sys.provinces.vo.CamasSysProvincesResVo">
    2. <id column="id" property="id"/>
    3. <result column="name" property="name"/>
    4. <result column="parent_id" property="parentId"/>
    5. <result column="type" property="type"/>
    6. <result column="remark" property="remark"/>
    7. <collection property="child" column="{parentId=id,deleted=deleted}" ofType="com.mono.module.camas.controller.admin.sys.provinces.vo.CamasSysProvincesResVo"
    8. select="getTreeProvinces"/>
    9. resultMap>
    10. <select id="getTreeProvinces" parameterType="Map" resultMap="treeProvinces">
    11. SELECT
    12. <include refid="Base_Column_List">include>
    13. FROM camas_sys_provinces WHERE parent_id = #{parentId} AND deleted = #{deleted}
    14. select>

    注意:

    1、parameterType 一定要是 java.util.Map

    2、column="{task_item_id=task_item_id,userId=userId}"
    这个地方参数一定要以{key1=value1,key2=value2} 的形式,

    如果直接写成{value1,value2}.则会出现不查询的问题。

  • 相关阅读:
    JS面向对象的几种设计模式
    Tomcat 如何加载 SpringMVC 组件
    前端中有序标签的使用
    Toronto Research Chemicals 抗生素化合物丨磷霉素氨丁三醇
    NGINX 域名及IP白名单拦截,Referer防盗链设置
    微服务架构分布式事务管理问题
    大米自动化生产线的运作原理与科技创新
    mysql技术文档--阿里巴巴java准则《Mysql数据库建表规约》--结合阿丹理解尝试解读--国庆开卷
    2022国自然中标至少1篇1区代表作?没中接下来怎么办?
    【详细教程】Kafka应用场景、基础组件、架构探索
  • 原文地址:https://blog.csdn.net/inexaustible/article/details/126029450