2012-11-12 20 views
0

我有以下實體:如何通過兩個變量/列以兩種方式對JSF 2數據表進行排序?

@Entity 
public class Question { 

    @Id 
    @GeneratedValue 
    private Integer id; 

    private String content; 

    private boolean visible; 

    private Date displayDate; 

} 

只有一個問題可以在數據庫中可以看到所有的時間。 dataTable中對列表的要求是第一行必須是可見的Question,而其他行必須由displayDate命令。任何想法?

回答

1

排序通常在DB(模型)端執行,而不是在JSF(視圖)端執行。你的SQL(也是JPQL)查詢應該這樣寫,它返回剛好你需要的行,沒有任何必要的後處理(數據庫在選擇工作中比Java/JSF的效率要高得多)。

在普通的SQL方面,如果你使用JPA,這將是

(...) ORDER BY visible DESC, displayDate ASC 

,你當然應該能夠提取該

(...) FROM Question q (...) ORDER BY q.visible DESC, q.displayDate ASC 
+0

正確JPQL語法這也正是更多靈活地思考這種情況。現在我明白了。謝謝。 – ranieribt

+0

哇!只是你寫的查詢(JPQL)!工作很好! – ranieribt

+0

不客氣。 – BalusC

相關問題