当前使用版本(必填,否则不予处理)
3.5.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
QueryWrapper
String beginFltDate = Convert.toStr(user.getParams().get("beginFltDate"), ""); String endFltDate = Convert.toStr(user.getParams().get("endFltDate"), "");
q.or(beginFltDate.length() > 0 || endFltDate.length() > 0, f -> { if (StringUtils.isNotEmpty(beginFltDate)) { f.lambda().ge(User::getFltDate, LocalDate.parse(beginFltDate)); } if (StringUtils.isNotEmpty(endFltDate)) { f.lambda().lt(User::getFltDate, LocalDate.parse(endFltDate).plusDays(1)); } });
user 为控制器输传过来的参数,user的user_name和age属性有值,目的是想用实体有值的属性做条件,再加自定义的条件。但这里的or不起作用,直接用AND后面自定义的条件
如: select user_name,age,flt_date WHERE user_name=? AND age=? AND ((flt_date >= ? AND flt_date < ?))
希望生成:
select user_name,age,flt_date WHERE (user_name=? AND age=?) OR (flt_date >= ? AND flt_date < ?)
重现步骤(如果有就写完整)
QueryWrapper 当有实体传入的时候,总是以AND和自定义的条件连接拼在一起。
报错信息
Comment From: miemieYaho
这种只能拼接and