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