需要完成的功能是  select * from  tb where id in ($P{ids});
请问如何设定这个参数?
例如 ids = 1, 2, 3
那么将会如下查询 select * from tb where id in (1, 2, 3)如果把 ids 设为 string 是不行的,如果设为 object也会报错

解决方案 »

  1.   

    我基本不做报表,不过要是我的话:重新置换整个查询串,因为百川归海还是字符串接口呀。
    queryString=${p}也可
    in(subQuery)其次也可用HQL它支持(:List<T>)正好对应in : List<Integer>
      

  2.   

    没用过这个 我想和ibatis之类的差不多吧  也就是正则替换表达式 String 的话会有两个引号 肯定就不对了 如果是object的话 判断肯定是 instanceof String  照样报错 我猜肯定会有其他的类型 查下API哈 
      

  3.   

    我曾经做过报表,我记得有这么一个功能,语法应该跟$P{ids}不太一样,就是把传递的参数当作sql语句的一部分来解析而不仅仅是普通的参数。我不能肯定jasperreport是否有这个语法,楼主可以去查一下。如果ids是通过另一个查询获得的话,可以把2句查询并在一个sql里,这样就避免了这个问题。
      

  4.   

    SQL语句里面转型啦。。有转型的函数
      

  5.   

    http://blog.anorakgirl.co.uk/?cat=4$X{IN, <column>, <param>}
    搞定了……
    谢谢各位