Как я могу добавить сложный заказ, используя Критерии Hibernate? - PullRequest
8 голосов
/ 28 мая 2010

Я использую критерии Hibernate и хотел бы добавить предложение order by, которое функционально совпадает с этим SQL:

order by abs(dateSubmitted - 125234234)

Где dateSubmitted - длинная длина, и вычтенное из нее число будет предоставлено пользователем (как дата). Я пытаюсь упорядочить записи по их «расстоянию» от указанной пользователем даты.

Я пробовал

criteria.addOrder("abs(dateSubmitted - " + getDateInput() + ")");

но это не работает.

Возможно ли это? Или мне придется отказаться от критериев для HQL? Я успешно сделал это в HQL, но хотел бы придерживаться критериев, если это вообще возможно для согласованности.

1 Ответ

11 голосов
/ 28 мая 2010

Возможно, создайте свой собственный класс Order, например:

http://blog.tremend.ro/2008/06/10/how-to-order-by-a-custom-sql-formulaexpression-when-using-hibernate-criteria-api/

Я собираюсь использовать это:)

...