请教个问题 <isNotEmpty  prepend="and"  property="objCondition.shopCodes">
   <isEqual property="objCondition.shopCodes" compareValue="1">
    left join suppliers_info s on to_char(s.supplier_id) = pm.SHOP_CODE
  </isEqual>
  </isNotEmpty>
这是我的代码  objCondition 是传进来对象里面的一个map 我执行 全部查询时报错只要去了  isEqual   标签就不报错 这个怎么解决啊

解决方案 »

  1.   

    楼主整个拼接sql,log打出来的你检查下呢。在你截图的上面有拼接后的sql和参数信息。
      

  2.   

    直接就报错了  sql 打印不出来
    <select id="getProductInfo" parameterClass="pagination" resultMap="promotionProductResult">
      <![CDATA[
      select * from (
      select ROW_NUMBER() OVER(order by sku.PRODUCT_SKU_ID desc) as view_row_number
      ,sku.PRODUCT_SKU_ID
      ,sku.PRODUCT_ID
      ,sku.PRICE 
      from PRODUCT_SKU sku 
    inner join PRODUCTMAIN pm on pm.PRODUCT_ID = sku.PRODUCT_ID
      ]]>
      <isNotEmpty  prepend="and"  property="objCondition.shopCodes">
       <isEqual property="objCondition.shopCodes" compareValue="1">
        left join suppliers_info s on to_char(s.supplier_id) = pm.SHOP_CODE
      </isEqual>
      </isNotEmpty>
       where pm.STATUS = 3 and sku.STATUS=1 
       <dynamic>
        <isNotEmpty  prepend="and"  property="objCondition.channel">
        pm.CHANNEL  = '$objCondition.channel$'
        </isNotEmpty>
        <isNotEmpty  prepend="and"  property="objCondition.categoryIds">
        pm.CATEGORY_ID  in ($objCondition.categoryIds$)
        </isNotEmpty>
        <isNotEmpty  prepend="and"  property="objCondition.brandIds">
        pm.BRAND_ID in  ($objCondition.brandIds$)
        </isNotEmpty>
       
        <isNotEmpty  prepend="and"  property="objCondition.shopCodes">
         <isEqual property="objCondition.shopCodes" prepend="and" compareValue="1">
          pm.SHOP_CODE = '1' or s.SUPPLIER_TYPE = 1 or s.SUPPLIER_TYPE = 3
         </isEqual>
         <isNotEqual property="objCondition.shopCodes" prepend="and" compareValue="1">
          pm.SHOP_CODE = '$objCondition.shopCodes$'
         </isNotEqual>
       </isNotEmpty>
       </dynamic>
       )
       where view_row_number between $startindex$  and $endindex$
      </select>
      

  3.   

    objCondition是对象名对吧,shopCodes是键值对中的键对吧?  如果是这样 取值时直接用shopCodes  不需要objCondition.shopCodes
      

  4.   

    objCondition 本身就是参数对象的属性了吧,这个标签貌似取不到参数对象的属性的属性(二级属性)