id:命名空间唯一标识,可以被用来引用这条语句
column:数据库表名的字段名称,也可以是sql语句As后命名的名称
property:实体类中定义的对象的名称
parameterType:将会传入这条语句的参数类的完全限定名或者别名
resultType:从这条语句要返回的期望类型的类的完全限定名或别名(这里注意下集合类型,应该是集合可以包含的类型,不能是集合本身),重要:使用resultType或resultMap,但不能同时使用。
resultMap:命名引用外部的resultMap,其名称要和外部的resultMap元素的ID名称一致,用于映射其结果到实体类指定对象中。
单个参数的递归查询:
- <resultMap id="treeCatByAncestry" type="com.lc.mono.module.camas.controller.admin.assetsManagement.vo.ComponentDistributeResVO">
- <id column="id" property="id">id>
- <result column="title" property="name">result>
- <collection property="child" column="{id=id}" ofType="com.lc.mono.module.camas.controller.admin.assetsManagement.vo.ComponentDistributeResVO" select="getTreeCatByAncestry">collection>
- resultMap>
- <select id="getTreeCatByAncestry" resultMap="treeCatByAncestry">
- SELECT
- id, title
- FROM camas_finger_categories WHERE ancestry = #{id} AND published = 1
- select>
多个参数的递归查询:
- <resultMap id="treeProvinces" type="com.mono.module.camas.controller.admin.sys.provinces.vo.CamasSysProvincesResVo">
- <id column="id" property="id"/>
- <result column="name" property="name"/>
- <result column="parent_id" property="parentId"/>
- <result column="type" property="type"/>
- <result column="remark" property="remark"/>
- <collection property="child" column="{parentId=id,deleted=deleted}" ofType="com.mono.module.camas.controller.admin.sys.provinces.vo.CamasSysProvincesResVo"
- select="getTreeProvinces"/>
- resultMap>
- <select id="getTreeProvinces" parameterType="Map" resultMap="treeProvinces">
- SELECT
- <include refid="Base_Column_List">include>
- FROM camas_sys_provinces WHERE parent_id = #{parentId} AND deleted = #{deleted}
- select>
注意:
1、parameterType 一定要是 java.util.Map
2、column="{task_item_id=task_item_id,userId=userId}"
这个地方参数一定要以{key1=value1,key2=value2} 的形式,如果直接写成{value1,value2}.则会出现不查询的问题。