我正在尝试使用hibernate条件检索数据库中的行。 我想在最后使用Hibernate获取值为“0”的条目。例如,如果条目出现在DB中,则列如下:
0
2
3
1
0
然后执行查询后我应该
1
2
3
0
0
答案 0 :(得分:2)
关于如何将排序标准注入Hibernate对象,有一篇很好的文章here。
要实现您正在寻找的那种排序,您将使用类似的技巧:
String hql = "... ORDER BY CASE WHEN f.value = 0 THEN 1 ELSE 0 END, f.value";
请注意,这是未经测试的代码,只能用于理解这个想法。您的数据库可能需要CASE
关键字的其他表单。
基本上,您按两个值排序,一个是硬编码,将所有零都放在末尾,然后按实际值进行子排序。