jxhyang 2015-03-02 16:04 采纳率: 0%
浏览 6820

criteriaBuilder 一个字段like 多个(or的关系不是and)

需求是比如是查出年龄在20-30 同时名字叫王三的**或者**叫李四的
criteriaBuilder.or(predicate, criteriaBuilder.like(name,value);//伪代码

    (希望对应的sql是这样的) :select * from XX a where  age in(20,30) and  (name like '%王三%' or origSourceIp like 李四%')  and sex like '%女%'

我如果按照上面的criteriaBuilder.or(like...)来写 
语句就成了select * from XX a where  age in(20,30) and  name like '%王三%' or origSourceIp like 李四%'  and sex like '%女%'(and之后在两个like 的时候没有括号,这样查询的语句就达不到要求)

难道就criteriaBuilder 就没有那种允许一个字段like 多个值得么···或者的关系不是and的关系
  • 写回答

2条回答 默认 最新

  • 似水若无心 2020-04-13 18:33
    关注

    Predicate pred1 = criteriaBuilder.like(root.get("name"),"%"+name+"%");
    Predicate pred2 = criteriaBuilder.like(root.get("name"),"%"+name+"%");
    predicate.getExpressions().add(criteriaBuilder.or(pred1, pred2));

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题