List results = getSession()
                    .createCriteria("com.xxx.hib.pojo.User")
                    //.add(Example.create(instance))
                    .add(Expression.like(USERNAME, "%"+Utils.nullToString(instance.getQq(), "")))                    .setFirstResult(0)
                    .setMaxResults(10)
                    .addOrder(Order.desc("uid"))
            .list();红色部分哪儿有错?

解决方案 »

  1.   

    Expression.like(username,xxx)
    就相当于自动帮你加了 %
    =username like xxx
    里面是不需要再+%的
      

  2.   


    是这样吗,我怎么记得like要手工加%的呢,我测试了一下 hibernate3.2,要加%呀,莫非是版本的问题?
      

  3.   

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.like("name", "just%"));
    List users = criteria.list();
    Lz ,你的add(Expression.like(USERNAME, "%"+Utils.nullToString(instance.getQq(), ""))) 中的
    USERNAME如果是POJO的字段名,应该加上引号。我怀疑是这里的问题。
      

  4.   

    Criteria criteria = session.createCriteria(Home.class);
    Criterion c1 = Expression.eq("id", id);
    criteria = criteria.add(c1);
    如ls所说,前面要+引号