predicates.add(builder.or(builder.like(expression, "%" + vals[0] + "%"),builder.like(expression,"%"+vals[1]+"%"),.......));
builder.or里面有多个builder.like, vals是一个数组,怎么用for循环往builder.or里
面添加,才能达到我想要的效果,也就是对应的SQL为:select * from xx where name
like '%王%’or name like '%李%' or name like '%高%' or ......

关于criteriabuilder 多个like查询拼接的问题(or不是and)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qq_33452266 2016-11-23 08:59关注
已解决:
String[] str = value.split(",");
List predicateList = new ArrayList();
Predicate [] p = new Predicate[str.length];for(int i = 0; i < str.length; i++){ predicateList.add(builder.like(expression, "%" + str[i] + "%")); } predicateList.toArray(p); predicates.add(builder.or(p));
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报