2017-04-20 69 views
1

如何通過降序排序並獲取最大結果並結束我希望列表按升序排序。我有以下的代碼是不工作休眠按降序依次升序排序

Criteria cr = sessionFactory.getCurrentSession().createCriteria(Employee.class) 
      .add(Restrictions.eq("empId", empId)).add(Restrictions.eq("empCode", empCode)); 
    cr.addOrder(Order.desc("joinDate")); 
    cr.setMaxResults(5); 
    cr.addOrder(Order.asc("joinDate")); 
    return cr.list(); 
+0

稍後在Java中重新排序會更容易。只需使用一個簡單的比較器 – StanislavL

+0

您可以給我一些關於它的指導,因爲我之前從未使用Comparator。 –

+0

基本上你正在做'ORDER BY joinDate DESC LIMIT 5',之後你想改變順序。這需要你使用子查詢,或者你只需​​按照@StanislavL的建議在Java中排序它們,這在這種情況下會更容易。 – coladict

回答

1

noOfEmployee從你應該初始化和員工是模型類以上標準列表回報。

Collections.sort(noOfEmployee, new Comparator<Employee>(){ 
     @Override 
     public int compare(Employee o1, Employee o2) { 
      // TODO Auto-generated method stub 
      return o1.getJoinDate().compareTo(o2.getJoinDate()); 
     } 
    }); 
+0

o1.getJoinDate()。compareTo(o2.getJoinDate())可能會拋出NPE – StanislavL

+0

您應該保存'final static'字段中的比較器,所以每次都不要爲它分配/釋放內存。 – coladict

+0

好吧,我得到了來自道的查詢,我正在做這個排序在我的服務層 –