Можно ли удалить порядок из критериев гибернации?
Если у меня есть аннотация @OrderBy("someProperty") на объекте, а затем использовать критерий для добавления предложения ORDER BY, например:
criteria.addOrder(Order.asc("id"));
Результирующий SQL будет выполнять порядок следующим образом:
ORDER BY someProperty, id asc
Можно ли изменить порядок этих двух или удалить некоторый порядок свойств? Я не могу удалить аннотацию @OrderBy и использую Hibernate для Java.
2 ответа:
Критерий не имеет методов для удаления порядка ни критерия Класс Order очень ограничен, можно использовать только имена свойств, и он генерирует стандартный и переносимый SQL. Аннотация OrderBy является порядком SQL, так как javadoc утверждает: OrderBy Это означает, что вы можете использовать там любой sql (даже эксклюзивный от вашего поставщика базы данных). Посмотрите на эту статью: сортировка коллекций в Hibernate с помощью SQL в @OrderBy
добавление SQL фрагментация в ваш доменный класс не обязательно самая элегантная вещь в мире, но это может быть самая прагматичная вещь.