2
public List<Movie> findRange(int[] range) {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Movie.class));
Query q = em.createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
List<Movie> list1 = q.getResultList();
Collections.sort(list1, new Comparator(){
public int compare (Object o1, Object o2){
Movie p1 = (Movie)o1;
Movie p2 = (Movie)o2;
return p2.getDate().compareTo(p1.getDate());
}
});
return list1;
}
查詢結果排序因爲它是現在整理的作品,但只有在批,
(批量= 4級的電影)首先一個=最後輸入;最後一個= fisrt輸入。
但只能與批次中的那些進行比較,而不是根據需要全部進行比較。如何通過他們的日期(JPA,Java集合)
非常感謝您的幫助,您可以提供
問候
伊格納西奧
非常感謝你,但它不工作,那爲什麼你已經知道它可能無法正常工作?我可以改變什麼來使其工作? – 2011-03-06 05:06:12
嗯,我猜想它可能不起作用,因爲我沒有測試它。我認爲無論是編譯器還是JPA引擎都可能記錄一些錯誤信息。 JEE 6教程包含了一些關於在JPA 2中排序的結果:http://download.oracle.com/javaee/6/tutorial/doc/gjivm.html#gjiwo – 2011-03-06 05:18:43
它的工作原理!非常感謝你只需要一個正確的設置,只是一個問題。爲什麼cq.order(cb.asc(movie.get(Movie_.getDate()))和以前不一樣cq.orderBy(cb.asc(movies.get(「date」)))?? – 2011-03-06 13:50:34