HQL: from A where b = ?
当?参数是一个List<String> 时 应该怎么写

解决方案 »

  1.   

    HQL 懂的人不多,你最好到java那边问一下。SQL语句的话,一般是 where b in (1,2,3,54,65);
      

  2.   

    java中这样调用
    getHibernateTemplate().findByNamedParam(hsql,
    (String[]) paramNames.toArray(new String[0]), values.toArray());
    hql中写成 where from A where b=:parameter
      

  3.   

    这种方法只能针对不同的参数有用,对统一个参数不可以,你还是把他们转换成用“,”断开的字符串,这样用from A where b in (parameters)就可以了 。
      

  4.   

    使用org.apache.commons.lang.StringUtils如果你用jdk1.6的话,使用List的toArray()方法转成数组StringUtils.join(new String[] { "AB", "CD", "EF" }, ",");
    //output:AB,CD,EF
      

  5.   


    5楼说的很清楚咯,from A where b in (parameters)StringUtils.join(arr[], ",")返回的是个字符串,就是parameters,长度?n个下标就有n-1个逗号