powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор значений по фильтру
4 сообщений из 4, страница 1 из 1
Выбор значений по фильтру
    #38786838
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базе есть int поля, необходимо сделать фильтр по значениям для этих полей.
Например: y<value<x, value<x, value>x, value=x .... Как лучше всего реализовать запрос на поиск по фильтру. Может сделать отдельный класс, типа:
Код: java
1.
2.
3.
public class Operation{
  String operation; ("less","between","greater", "equals") 
}


далее передавать в нем название поля, операцию и значение(я) для осуществления фильтрации.
Как вы делаете подобные вещи?
Спасибо
...
Рейтинг: 0 / 0
Выбор значений по фильтру
    #38788211
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,

Направление мысли правильное, но реализация никакая. Я бы делал через Enum с переопределяемыми методами. И каждый элмент замапил бы на операций в Criteria API, или чем вы там запросы строите. Что-то типа такого:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public enum FilterRestrinction{

   less{
        @Override
        public SimpleExpression apply(String property, Object value){
           return Restrictions.lt(property, value);
        }
   }

   public SimpleExpression abstract apply(String property, Object value);
}
...
Рейтинг: 0 / 0
Выбор значений по фильтру
    #38788215
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать причесать код через лямбды Java 8.
...
Рейтинг: 0 / 0
Выбор значений по фильтру
    #38788293
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczJulT,

Направление мысли правильное, но реализация никакая. Я бы делал через Enum с переопределяемыми методами. И каждый элмент замапил бы на операций в Criteria API, или чем вы там запросы строите. Что-то типа такого:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public enum FilterRestrinction{

   less{
        @Override
        public SimpleExpression apply(String property, Object value){
           return Restrictions.lt(property, value);
        }
   }

   public SimpleExpression abstract apply(String property, Object value);
}


ух!! круто, спасибо :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор значений по фильтру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]