如何使用Java Stream API处理切换条件

时间:2019-06-21 09:58:54

标签: java

我正在尝试根据请求构造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));

0 个答案:

没有答案