如何通过两个变量/列以两种方式对JSF 2 dataTable进行排序?

时间:2012-11-12 15:12:29

标签: jpa jsf-2

我有以下实体:

@Entity
public class Question {

    @Id
    @GeneratedValue
    private Integer id;

    private String content;

    private boolean visible;

    private Date displayDate;

}

数据库中始终只能显示一个问题。 dataTable中列表的要求是第一行必须是可见问题,其他行必须由displayDate排序。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

排序通常在DB(模型)端执行,而不是在JSF(视图)端执行。您的SQL(以及等效的JPQL)查询应该以这样的方式编写,即它返回完全您需要的行,而无需任何必要的后处理(DB在选择作业中比Java /更高效) JSF)。

用简单的SQL术语来说,那就是

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

如果你正在使用JPA,你肯定能够为它提取正确的JPQL语法

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