Hibernate按多个值排序

时间:2014-12-27 11:11:14

标签: java sql hibernate

Event实体有params:id longisActive boolean目的是按id desc排序,但isActive值为1应该在列表的顶部,只有在那之后将变为0值(没有混合)。我是否可以仅使用Hibernate查询或首先创建查询FROM Event event order by active desc然后使用java.util.Comparator?

2 个答案:

答案 0 :(得分:2)

您只能使用JPQL / HQL执行此操作,而无需在Java中对结果进行排序:

FROM Event ORDER BY active DESC, id DESC

HQL和JPQL允许您按多个字段对结果进行排序,就像SQL一样。您可以在Java EE docs中找到有关ORDER BY用法的更多信息。

如果您在数据库中有这样的数据:

id  active
1   0
2   1
3   0
4   1
5   1

然后这是此查询将返回的内容:

id  active
5   1
4   1
2   1
3   0
1   0

答案 1 :(得分:1)

FROM Event event order by active desc, id desc