我的数据由可以是数字或字符串的字符串组成(“12”应该被视为一个数字,而“12REF”应该被视为一个字符串)。
我希望在我的 criteriaBuilder 中实现 order by,它首先按数字对字符串进行排序,然后将按字母顺序排序的字符串放在最后。
正确排序示例:<[[“1”、“2”、“10”、“A”、“AB”、“B”、“DUP”、“LNE”、“NUL”]]>
目前我的代码看起来像这样(只是按 asc 排序,使用 CriteriaQuery 的 orderBy)。
.orderBy(QueryUtils.toOrders(
Sort.by(Sort.Direction.ASC, selection.getAlias()), root,
criteriaBuilder)
);
这导致:<[[“1”,“10”,“2”,“A”,“AB”,“B”,“DUP”,“LNE”,“NUL”]]>
如何在这里实现自定义排序?
编辑:数据存储在 MySQL 数据库中