对字段进行任意排序的最佳方法是什么?
示例:
每个Content
都有一个Status
。 Status
' id
是一个枚举。商家希望看到按Content
,Status.Id.REJECTED
和Status.Id.IN_WORK
排序的Status.Id.PENDING
列表。
正如您所看到的,它没有按字母顺序排序。有人可能会改变主意,希望以不同的方式排序,或者提出更多的状态'英寸
处理这种情况的最佳方法是什么?我能想出的唯一解决方案是将order
添加到Status
或单独查询每个Status
,然后以编程方式将其拼接在一起。但那似乎很脏。
我知道这个前提有一些继承荒谬,但它不是我的,我无法控制它。非常感谢任何帮助。
答案 0 :(得分:2)
最后,我找到了最简洁的方法来添加int
status.order
,然后按该列排序状态。这为我提供了:
最后一点最终成为真正的卖家,因为业务方习惯于不完全考虑他们的要求,并且需要在开发期间和发布后多次更改它们。
答案 1 :(得分:1)
您可以使用ordinal
。但正如你所说,它可能会随着时间而改变。
然后您可以更改查询,让DB
执行此操作。使用HQL
或SQL
更容易。
select
case
when a.FIELD = 'something'
then 1
else 0
end as myOrdr
from A a
order by myOrdr
无论哪种方式,您都必须触摸代码才能更改顺序。