网上说的是重复使用单引号,我现在的情况是这样的:
有一个查询条件,ui.name in ('a','b','c' ...),在HQL里我这么写的: ui.name in (?),传递过来的参数是'a','b','c'。
试过传递过来''a'',''b'',''c''(单引号打两次)也无法得到正确的结果。
是不是哪里写错了?
或者,HQL支持ui.name in (?[])这样批量设置的办法么?
问题很弱,但是网上实在是没有搜到合适的解决办法。
谢谢

解决方案 »

  1.   

    String hql="select inforbo  from InforBO as inforbo 
    where inforbo.name=:name and inforbo.sex=:sex and 
    inforbo.dep=:dep" 
    Query query=session.createQuery(hql); 
    query.setParameter("name",name); 
    query.setParameter("sex",sex); 
    query.setParameter("dep",dep); 
    List list=query.list(); 
    看一下这个,明白了把
      

  2.   

    也可以用带问号的参数.用setString之类的."'a'" 这样传
      

  3.   

    已经解决了:
    hql语句片段:
    ……
    ui.name in (:userList)
    ……String userName[] = userList.split(",");//传递过来的时候打个断点看看数组里有没有多余的引号
    query.setParameterList("userList",userName);
    谢谢楼上,不过和我想问的似乎不是一回事,:-)