Критерии гибернации упорядочены по двум столбцам - PullRequest
0 голосов
/ 25 октября 2019

У меня есть таблица с wingNo и FlatNo.

WingNo          FlatNo
A                001
A                002
B                1
A                101

и т. Д.

Мне нужно заказать WingNo & FlatNo в порядке Asc. Где WingNo и FlatNo оба являются String. Результат должен быть: -

WingNo         FlatNo
A               001
A               002
A               101
B               1


criteria.addOrder(Order.asc("wingNo"));
criteria.addOrder(Order.asc("flatNo"));

Как я могу использовать порядок с полем String, обработанным как числа?

1 Ответ

0 голосов
/ 25 октября 2019

Если поле FlatNo представляет собой текстовое поле или поле varchar фиксированной ширины в таблице базы данных, то ваша текущая логика упорядочения уже должна давать вам желаемое поведение. Это связано с тем, что строки чисел с фиксированной шириной, дополненные нулями, сортируются лексикографически идентично базовым числам.

Если столбец FlatNo не имеет фиксированной ширины и / или может отсутствовать заполнение нулями слева, то вам придетсяделать больше работыЕсли бы у вас была такая долгосрочная потребность, возможно, было бы проще сделать FlatNo числовой столбец.

...