2017-04-20 46 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

これまでコンパレータを使用したことがないので、もう少し参考にしてください。 –

+0

本質的に、あなたは順序を変更したいと思う 'ORDER BY joinDate DESC LIMIT 5'をやっています。そのためにはサブクエリを使用するか、Javaで@StanislavLが提案するようにソートするだけです。この場合は簡単です。 – 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

私はDAOからのクエリを取得しています。私はこのサービスレイヤーでこの並べ替えを行っています –

関連する問題