有name(名字),type(类型),orderid(排序id),state(类型)
要查询排序:类型相同的显示在一起。并且各自的类型都按照orderid降序排列

解决方案 »

  1.   

    俩个类型啊?
    type state
      

  2.   

    Criteria c = session.createCriteria(Module.class);
    c.add(Restrictions.eq("state", 0));
    if (name != null && !name.equals("")) {
    c.add(Restrictions.like("name", "%" + name + "%"));
    }
    c.addOrder(Order.desc("orderid"));//这只是根据一个条件查。不行
      

  3.   

    啥东西不行啊?
    写出来的SQL就是:
    select * from TABLE where name like ? group by type order by orderid desc
      

  4.   

    用Criteria 这种方式查询怎么搞
      

  5.   

    自己查API去。
    只用过hibernate,你那东西我没接触过。
    SQL都写出来了,看着API就应该能写出来了。
    基本上都是绑定变量的使用方式。
    而且这条语句只是简单的单表查询,一个分组一个排序而已。
    绑定的变量也就一个。
    未来的程序员,你要学会自学。
      

  6.   

    select * from tablename group by type order by orderid;
      

  7.   

    用这种方式怎么搞Criteria 
      

  8.   

    为什么都加group,说要分组统计了吗?
    order by type,orderid desc 不行?c.addOrder(Order.desc("orderid"));//这只是根据一个条件查。不行
    c.addOrder(Order.desc("type"));//再加一个不行吗?
      

  9.   

    。。您答对了。我就是这么搞的。我犯晕了老想着用group byok。解决了。。
      

  10.   


    Criteria c = session.createCriteria(Module.class);
    c.add(Restrictions.eq("state", 0));
    if (name != null && !name.equals("")) {
    c.add(Restrictions.like("name", "%" + name + "%"));
    }
    c.addOrder(Order.desc("type"));
    c.addOrder(Order.desc("orderid"));
    这样就可以,如果是用group by 的话也是可以的,但是它返回的是一个List<Object[]>对象,不是Module的实体对象。