Я пытаюсь построить SQL-запрос на основе запроса. У меня есть разные типы выражений:
"и" -> И выражение
"или" -> Или выражение
"eq" -> выражение равенства
"notEq" -> Выражение неравенства
"ge" -> Выражение, превышающее равенство
"gt" -> Больше чем выражение
"lt" -> Меньше, чем выражение
"le" -> Выражение меньше, чем равенство
"Между" -> Между выражением
лайк -> лайк выражение
Я пытался выполнить два условия. Но я хочу сделать несколько условий на основе типа, я должен выбрать выражение. Например, если eq
является типом, то у меня есть выражение =
или in
, если между типом есть выражение типа between
.
searchQuery = listOfExpression.stream()
.map(e -> e.getFilterName() + "" +
(e.getType(). equalsIgnoreCase("eq") ? " in" : " like") + "(" +
(e.getValues().stream()
.map(s -> "'" + s + "'")
.collect(Collectors.joining(","))) + ")")
.collect(Collectors.joining(" " + searchType));