<select id="selectProcessInfo" parameterType="CaseQB" resultMap="processInfoList">
SELECT T2.TASK_ORDER_ID,
   T3.TEMPLATE_ID,
   T3.TEMPLATE_NAME,
       T5.STAFF_NAME
FROM DEAL_ORDER   T1,
     TASK_ORDER   T2,
     TASK_TEMPLATE   T3,
     USER_OWNER_RELA T4,
     STAFF           T5
WHERE T1.CASE_ID = 285
      AND T1.DEAL_TYPE = 1
      AND T2.DEAL_ORDER_ID = T1.DEAL_ORDER_ID
      AND T2.STATUS !=0
      AND T2.TEMPLATE_ID = T3.TEMPLATE_ID
      AND T3.STATUS = 'A'
      AND T2.DEAL_STAFF = T4.USER_ID
      AND T4.OWNER_TYPE = 'S'
      AND T4.STS = 'A'
      AND T4.OWNER_ID = T5.STAFF_ID
      AND T5.STS = 'A'
</select>
<resultMap type="CaseVO" id="processInfoList">
<id column="TEMPLATE_ID" property="taskTemplate.templateId" />
<result column="TEMPLATE_NAME" property="taskTemplate.templateName" />
<result column="STAFF_NAME" property="dealMan" />
<result column="TASK_ORDER_ID" property="taskOrder.taskOrderId" />
<collection property="complexProps" javaType="ArrayList" column="{????????}" 
ofType="ComplexProp" select="selectPropsForProcess"></collection>
</resultMap>
<select id="selectPropsForProcess" parameterType="long" resultMap="complexPropList">
  SELECT T8.DEAL_PROP_ID,
T7.PROP_NAME, 
T8.PROP_VALUE, 
T8.PROP_VALUE_NAME
  FROM TASK_PROP T6, PROPERTY T7, DEAL_ORDER_PROP T8
  WHERE T6.PROP_ID = T7.PROP_ID
   AND T6.PROP_ID = T8.PROP_ID
   AND T6.TEMPLATE_ID = #{taskTemplate.templateId}
   AND T8.DEAL_ORDER_ID = 396
   AND T6.STATUS = 'A'
   AND T7.STATUS = 'A'
   AND T8.TASK_ORDER_ID = 645
 ORDER BY T8.STATUS_DATE
</select>
<resultMap type="ComplexProp" id="complexPropList">
<id column="DEAL_PROP_ID" property="dealOrderProp.dealPropId" />
<result column="PROP_NAME" property="property.propName" />
<result column="PROP_VALUE" property="dealOrderProp.propValue" />
<result column="PROP_VALUE_NAME" property="dealOrderProp.propValueName" />
</resultMap>查询返回CaseVO对象,对象内包含List<ComplexProp>,嵌入的sql怎么给它传一个以上的参数,传一个参数我知道,就不用
说了!!
查了一下资料,{prop=col1,prop2=col2}这种方法,但是报错
求高手指点!!!!

解决方案 »

  1.   

    传递Map类型进去  应该可以的吧  本人三年JAVA开发,寻求牛人加入Q群53141769
      

  2.   

    能不能再讲清楚点儿?不太明白我这个是在resultMap中嵌套的sql查询<collection property="complexProps" javaType="ArrayList" column="{????????}"  
    ofType="ComplexProp" select="selectPropsForProcess"></collection>
    通过column给内嵌sql传参
    column="{????????}"  
      

  3.   

    看上去怎么这么复杂哦 这个list里面返回list 
    在bean里面配好就是了撒 
    <select id="selectProcessInfo" parameterType="CaseQB" resultMap="processInfoList">
    SELECT T2.TASK_ORDER_ID,
    T3.TEMPLATE_ID,
    T3.TEMPLATE_NAME,
    T5.STAFF_NAME
    FROM DEAL_ORDER T1,
    TASK_ORDER T2,
    TASK_TEMPLATE T3,
    USER_OWNER_RELA T4,
    STAFF T5
    WHERE T1.CASE_ID = 285
    AND T1.DEAL_TYPE = 1
    AND T2.DEAL_ORDER_ID = T1.DEAL_ORDER_ID
    AND T2.STATUS !=0
    AND T2.TEMPLATE_ID = T3.TEMPLATE_ID
    AND T3.STATUS = 'A'
    AND T2.DEAL_STAFF = T4.USER_ID
    AND T4.OWNER_TYPE = 'S'
    AND T4.STS = 'A'
    AND T4.OWNER_ID = T5.STAFF_ID
    AND T5.STS = 'A'
    </select>
    <resultMap type="CaseVO" id="processInfoList">
    <id column="TEMPLATE_ID" property="taskTemplate.templateId" />
    <result column="TEMPLATE_NAME" property="taskTemplate.templateName" />
    <result column="STAFF_NAME" property="dealMan" />
    <result column="TASK_ORDER_ID" property="taskOrder.taskOrderId" />
    <result property="complexProps" select="selectPropsForProcess"
    column="id" />
    </resultMap>
     
      

  4.   

    我的到是没报错 就是用这种方式{id=id,name=name} 值传不过去
      

  5.   

    不用看了 这是个bug 最新版本的mybatis3是没问题的