JFilter http://code.google.com/p/jfilter/ лучше всего подходит для вашего требования.
JFilter - это простая и высокопроизводительная библиотека с открытым исходным кодом для набор запросов к Java-компонентам.
Основные функции
- Поддержка свойств коллекции (java.util.Collection, java.util.Map и Array).
- Поддержка сбора внутри коллекции любой глубины.
- Поддержка внутренних запросов.
- Поддержка параметризованных запросов.
- Может фильтровать 1 миллион записей за несколько 100 ms.
- Фильтр (запрос) задается в простом формате json, это похоже на запросы Mangodb. Ниже приведены некоторые примеры.
- {"id": {"$ le": "10"}, где свойство id объекта меньше, чем 10.
- {"id": {"$ in": ["0", "100"]}}, где свойство id объекта равно 0 или 100.
- {"lineItems": {"lineAmount": "1"}} где lineItems свойство коллекции параметризованного типа имеет значение lineAmount равно 1.
- {"$ and": [{"id": "0"}, {"billingAddress": {"city": "DEL"}} ]} где id - значение 0, а свойство billingAddress.city - DEL.
- {"lineItems": {"tax": {"key": {"code": "GST"}, "value": {"$ gt": "1.01"}}}} где Свойство collectionItems для параметризованного типа, у которого есть свойство типа карты налогов с параметризованным типом, имеет код, равный значению GST, превышающему 1.01.
- {'$ или': [{'code': '10'}, {'skus': {'$ and': [{'price': {'$ in': ['20 ',' 40 ']}}, {' code ':' RedApple '}]}}]} Выберите все продукты, в которых код продукта равен 10 или sku в 20 и 40, а код sku - «RedApple».
задан Matrix Bai 26 February 2015 в 09:28
поделиться