哦,参数直接写就可以了。正确应该是:
Query repeatClientQuery=querysession.createQuery("from ClientInfo as a " 
                                          +"where a.client_name like :name" ); 
                repeatClientQuery.setParameter("name",clientname);
但查询出来的结果和我直接写sql查的结果不一样啊,哪位知道什么原因吗?

解决方案 »

  1.   

    LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
    LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
    LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
    LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
    LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
    LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从M到Z的任何单个字母开头的所有名称如 。
    LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。 你直接写
    String sql = "from ClientInfo as a where a.client_name like '%"+ clientname+"%'"); 
    Query repeatClientQuery=querysession.createQuery(sql);
    就可以了
      

  2.   

    哦,直接写成字符串,不用hql的附值函数吗?成功了,非常感谢!
    hql的参数附值就这么差阿,呵呵