Динамический запрос с использованием hibernate-критериев api

63
5

Я хочу построить запрос динамически, используя критерии спящего режима. Api.i сталкивается с проблемой с "Order By". Предположим, у меня есть инструкция вроде этого

Criteria crit = session.createCriteria(Product.class); 
crit.addOrder(Order.asc("price"));

теперь я хочу контролировать "asc" или "desc" на основе пользовательского ввода. Возможно ли это?

спросил(а) 2021-01-25T04:51:09+03:00 4 месяца, 4 недели назад
1
Решение
126

API объектов критериев предоставляет класс Order в качестве основного API для управления сортировкой. Класс Order имеет два метода для установки порядка сортировки:

asc (String attribute): сортирует запрос по атрибуту в порядке возрастания.

desc (String attribute): сортирует запрос по атрибуту в порядке убывания.

Теперь, если вы хотите управлять "asc" или "desc" на основе ввода пользователем, вы можете сделать следующее

Предположим, что ввод пользователя может быть "asc" или "desc".

Criteria crit = session.createCriteria(Product.class); 

if (userInput.equals("asc")) {
crit.addOrder(Order.asc("price"));
} else if (userInput.equals("desc")) {
crit.addOrder(Order.desc("price"));
}

ответил(а) 2021-01-25T04:51:09+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема