query=session.createQuery("select a from Users as a where a.purviewDescribe='管理员'");像这条语句也没有错吧,可是就是查不出结果来,而数据库中确实有这样的数据,而且据我测试。应该是汉字的问题,问题就出在管理员这三个字上,可是总不能查汉字吧。没经验,请指教

解决方案 »

  1.   

    select a.* from Users as a where a.purviewDescribe=?
    用占位符
    query.setParameter(0,"管理员");
      

  2.   

    按位置,第一个 ?为0,第二个为1,。。
    query.setParameter(0,"管理员");
    query.setParameter(1,xxxx);
      

  3.   

    哦,呵呵,谢谢,那是不是遇到汉字的时候必须要这样写呢,可是这个模糊查询应该怎么写呢select a from Case1 as a where a.caseId like '%?%'
    query1.setParameter(0, text);
    text 是个变量,应该怎么改呢,报错了,No positional parameters in query