我正在尝试根据请求构造sql查询。我有不同类型的表达式:
“ and”->和表达式
“或”->或表达式
“ eq”->相等表达式
“ notEq”->不相等表达式
“ ge”->大于平等表达方式
“ gt”->大于表情
“ lt”->少于表情
“ le”->小于等于表达
“ between”-> Expression之间
“ like”-> Like Expression
我尝试了两种情况。但是我想根据类型做多个条件,我必须选择表达式。就像如果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));