2016-07-06 2 views
0

Как передать необработанное выражение для реализации ExpressionVisitor Odata4 с использованием olingo4. Вот как это было сделано в olingo2 JDBC Visitor FilterApache Olingo4 ExpressionVisitor

String rawExpression = "'a' eq 'b' or ('c' eq 'd' and 'b' eq 'd')"; 
FilterExpression expression = UriParser.parseFilter(null, null, rawExpression); 
String whereClauseSimple = (String) expression.accept(new JdbcSimpleStringVisitor()); 

ответ

1

Существует в настоящее время (выпущена версия 4.2.0) не экспонирование API для этой функции.

Вы можете установить зависимость от сервера основного модуля непосредственно и вызвать «нового Parser (EDM, OData) .parseUri (конечный путь String, окончательная Строку запрос, заключительный фрагмент String)»

или использовать filter parser direclty, создав UriTokenizer, а затем вызывая «FilterParserparse» (UriTokenizer tokenizer, final EdmType referencedType, final Collection crossjoinEntitySetNames, окончательные псевдонимы карты) «

+0

Спасибо @chrisam! Я пытаюсь генерировать запрос Elasticsearch из фильтров odata4' $. Я не реализую весь протокол «oData 4». Я ищу способ разобрать строку $ filter и заставить ExpressionVisitor работать. Есть ли способ сделать это без передачи edm или EdmType в методе FilterParserparse или Parser в Olingo 4.2. – Tirtha

+0

@ Tirtha Нет, нет. Парсер требует EDM в V4. – chrisam

Смежные вопросы