解决方案 »

  1.   

    debug跟踪了,是356,357(String),console 输出的09:43:06,333 DEBUG queryListPage:46 - ==>  Preparing: select CONTENT_ATTACHMENT_ID, CONTENT_ID, CONTENT_ATTACHMENT_NAME, CONTENT_ATTACHMENT_TYPE, CONTENT_ATTACHMENT_LINK, CONTENT_ATTACHMENT_DESCRIPTION, CONTENT_SOFTWARE_PRODUCT_PLATFORM, CONTENT_VERSION, DOWNLOAD_TIMES, UPDATE_DATE, UPDATE_USER, INSERT_DATE, INSERT_USER, DEL_FLAG from bim_content_attachment where bim_content_attachment.DEL_FLAG = 0 and bim_content_attachment.CONTENT_ATTACHMENT_ID in (?) limit 0,10 
    09:43:06,334 DEBUG queryListPage:46 - ==> Parameters: 356,357(String) 拿这条语句去数据库执行了 确实能查询出来两条记录
      

  2.   

    debug看了contentAttachmentIdStr是“356,357”的
      

  3.   

    bim_content_attachment.CONTENT_ATTACHMENT_ID in (356,357),确定执行是这样?
      

  4.   

    你parametertype是啥,id集合数组?拼接id逗号分割字符串?我一般传list或数组,然后用foreach标签
      

  5.   

    我在程序xml的sql 直接这样写了
    bim_content_attachment.CONTENT_ATTACHMENT_ID     in       (356,357) 这样程序就返回了两条
      

  6.   

    tableName.CONTENT_ATTACHMENT_ID 
        in          (#{contentAttachmentIdStr})有问题的
    mybatis会把#{contentAttachmentldStr}会把#{}里面的东西看成一个字符串‘356,357’的
      

  7.   

    我在程序xml的sql 直接这样写了
    bim_content_attachment.CONTENT_ATTACHMENT_ID     in       (356,357) 这样程序就返回了两条那就是mybatis执行时候,不是按这个处理的
      

  8.   

    在调用SQL前打印contentAttachmentldStr,看看他是什么内容,然后等价替换#{contentAttachmentldStr},看看得到什么SQL
      

  9.   

     我试了下 因为我定义的contentAttachmentldStr是String 类型,CONTENT_ATTACHMENT_ID 是Long,所以程序自动为他加了引号 ,成了这样的
     bim_content_attachment.CONTENT_ATTACHMENT_ID in ('356,357')  现在就是不知道该怎么来去掉两个单引号
      

  10.   

    resultMap 没有错,返回了一条记录,不是两条
      

  11.   

    我觉得你应该拼成'356','357'才对吧?另外,传入map的时候,不可以指定类型的么
      

  12.   

    <![CDATA[。。sql]]>
    你sql加这个试试
      

  13.   

    看tableName.CONTENT_ATTACHMENT_ID 数据类型是什么,如果是数字,传 356,357,如果是字符,传'356','357'
      

  14.   

    正确方式:
    select * from test where id in
    <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
              #{item}
    </foreach>
    我手写的,应该这样写的才对 list就是你的356,357 separator属性定义的","就是你传递到参数分割符。比如传递参数:356|357那么separator="|"就可以了