Запрос Java-объектов (применение SQL-логики к списку Java-объектов) - PullRequest
0 голосов
/ 05 июля 2018

У меня есть объект Employee, например, Employee содержит несколько полей (более 300), таких как имя, отдел, зарплата, возраст, учетная запись и т. Д. Данные всей таблицы Employee кэшируются в объект списка java, который содержит более 2 миллионов записей.

Требование пользователь может выполнять поиск по любым поданным подаркам в объекте Employee, например, по имени сотрудника, например, Sehwag, возраст> 30 или оклад> 100000. На основе поиска пользователя мы должны отобразить отфильтрованный список списка Employee.

из-за проблем с производительностью мы не запрашиваем БД, мы хотим применить критерии поиска пользователя к кешированному объекту списка Java ранее

Есть ли способ api / frameworks / любое другое решение, где мы можем запросить объекты Java?

Подход ниже. Я пытаюсь, но чувствую себя не очень хорошо.

Итерирование списка сотрудников и применение критериев поиска условного пользователя к объекту сотрудника, знание выбранного пользователем критерия поиска среди 300 полей является сложной задачей, написана логика отображения множества перечислений и некоторая дополнительная логика для каждого поля, чтобы он работал. с текущими требованиями это может работать, но подумывает об использовании API или Framework или лучший способ решить требование!

Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

пробовал запросы CQEngine на основе SQL https://github.com/npgall/cqengine соответствует моему требованию,

ниже приведены несколько полезных ссылок https://dzone.com/articles/getting-started-cqengine-linq

https://mvnrepository.com/artifact/com.googlecode.cqengine/cqengine

0 голосов
/ 06 июля 2018

Прежде всего. Если вы не хотите или не можете изменить существующее решение, взгляните на querydsl. Существует модуль querydsl-collection, который точно соответствует вашим потребностям. Подробнее на http://www.querydsl.com/ и http://www.querydsl.com/static/querydsl/latest/reference/html/ch02s08.html

Однако, если у вас есть возможность пересмотреть / перестроить решение, вам следует рассмотреть что-то более подходящее для запросов большого объема. Я предлагаю вам больше узнать о базах данных (nongql) (mongodb) или инструментах индексирования, таких как lucene илиasticsearch, который добавляет слой RESTFul поверх lucene.

Надеюсь, это поможет.

...