Closed Lroyia closed 5 years ago
? 你 order_status 这个字段哪来的?
步骤省略的一个eq拼接
把代码和 sql发完整
// 条件封装
QueryWrapper
if (StringUtils.isNotBlank(statusIn)) { wrapper = wrapper.in("order_status", Arrays.asList(statusIn.split(","))); }
List agentIds = new ArrayList<>(); agentIds.add(4); List distributorIds = new ArrayList<>();
wrapper.and(w-> w.in("agent_id", agentIds).or().in("distributor_id", distributorIds)); IPage page = orderService.page(new Page<>(curPage, pageSize), wrapper.orderBy(true, orderRule, orderField));
完整的sql 呢?
[nio-8080-exec-1] c.b.d.o.order.OrderMapper.selectPage : ==> Preparing: SELECT COUNT(1) FROM br_order WHERE deleted = ? AND order_status IN (?, ?) AND order_status = ? AND (agent_id) 2018-11-02 12:27:59.425 DEBUG 10644 --- [nio-8080-exec-1] c.b.d.o.order.OrderMapper.selectPage : ==> Parameters: false(Boolean), 2(String), 3(String), 2(String) 2018-11-02 12:27:59.436 DEBUG 10644 --- [nio-8080-exec-1] c.b.d.o.order.OrderMapper.selectPage : ==> Preparing: SELECT id,order_code,order_time,order_amount,agent_id,agent_name,distributor_id,distributor_name,merchant_id,merchant_name,order_type_code,order_type_name,order_status,need_examine,examine_status,service_code,service_name,salesman_id,salesman_name,sale_rate,deductions_rate,customer_id,customer_name,company_id,company_name,credit_card_num,num_of_meals,meal_time,bill_content,remark,first_examine_remark,second_examine_remark,card_machine_code,exchange_time,reference_num,batch_no,voucher_no,auth_no,trace_no,credit_card_code,guangshang_card_code,opening_bank_name,machine_remark,machine_remark1,machine_remark2,machine_bill_photo_uri,people_num,menu_order_num,meal_type,menu_bill_type,scale_type,room_table_num,original_ticket_uri,invoice_num,invoice_code,invoice_password,check_code,invoice_item,invoice_rate,invoice_remark,invoice_remark1,invoice_photo_uri,add_machine_status,add_machine_operator,add_menu_status,add_menu_operator,add_invoice_status,add_invoice_operator,customer_confirm_status,merchant_confirm_status,enter_account_status,pay_status,auth_user_code,auth_nick_name,accept_user_code,accept_nick_name,reservations_code,create_time,creator,update_time,updator,deleted FROM br_order WHERE deleted = ? AND order_status IN (?,?) AND order_status = ? AND ( agent_id ) ORDER BY create_time DESC LIMIT 0,10 2018-11-02 12:27:59.436 DEBUG 10644 --- [nio-8080-exec-1] c.b.d.o.order.OrderMapper.selectPage : ==> Parameters: false(Boolean), 2(String), 3(String), 2(String) 2018-11-02 12:27:59.453 DEBUG 10644 --- [nio-8080-exec-1] c.b.d.o.order.OrderMapper.selectPage : <== Total: 10
分页拼接出来的条件就是这样:WHERE deleted = ? AND order_status IN (?,?) AND order_status = ? AND ( agent_id ) ORDER BY create_time DESC LIMIT 0,10
Parameters: false(Boolean), 2(String), 3(String), 2(String)
agent_id在实体内是Integer类型
你的 bug 没有复现出来,你提交个能复现的 demo 发上来一下吧
CREATE TABLE br_order
(
id
int(11) NOT NULL AUTO_INCREMENT,
order_code
varchar(64) NOT NULL COMMENT '订单号',
order_time
datetime NOT NULL COMMENT '订单时间',
order_amount
decimal(15,3) NOT NULL COMMENT '订单总额',
agent_id
int(11) NOT NULL COMMENT '代理商ID',
agent_name
varchar(64) DEFAULT NULL COMMENT '代理商名称',
distributor_id
int(11) DEFAULT NULL COMMENT '分销商ID',
distributor_name
varchar(64) DEFAULT NULL COMMENT '分销商名称',
merchant_id
int(11) NOT NULL COMMENT '商户id',
merchant_name
varchar(64) DEFAULT NULL COMMENT '商户名称',
order_type_code
varchar(150) DEFAULT NULL COMMENT '订单类型编码',
order_type_name
varchar(80) DEFAULT NULL COMMENT '订单类型名称',
order_status
int(2) NOT NULL COMMENT '订单状态(0:作废,1:等待初审,2:等待补充,3:等待再审,4:等待派送,5:已被接受任务,6:完成)',
need_examine
bit(1) NOT NULL COMMENT '是否需要审核',
examine_status
varchar(45) DEFAULT NULL COMMENT '审核状态',
service_code
varchar(120) NOT NULL COMMENT '产品服务编码(,隔开)',
service_name
varchar(64) DEFAULT NULL COMMENT '产品服务名称(,隔开)',
salesman_id
int(11) DEFAULT NULL COMMENT '业务员id',
salesman_name
varchar(45) NOT NULL COMMENT '业务员名称',
sale_rate
decimal(11,4) NOT NULL COMMENT '业务员点数',
deductions_rate
decimal(11,4) NOT NULL COMMENT '订单扣款率',
customer_id
int(11) NOT NULL COMMENT '客户id',
customer_name
varchar(64) DEFAULT NULL COMMENT '客户名称',
company_id
int(11) DEFAULT NULL COMMENT '公司id',
company_name
varchar(64) DEFAULT NULL COMMENT '公司名称',
credit_card_num
varchar(64) DEFAULT NULL COMMENT '信用卡卡号',
num_of_meals
int(11) DEFAULT NULL COMMENT '用餐人数',
meal_time
varchar(20) DEFAULT NULL COMMENT '用餐时间(午餐,晚餐)',
bill_content
varchar(10) DEFAULT NULL COMMENT '开票内容',
remark
varchar(100) DEFAULT NULL COMMENT '备注',
first_examine_remark
varchar(100) DEFAULT NULL COMMENT '初审备注',
second_examine_remark
varchar(100) DEFAULT NULL COMMENT '再审备注',
card_machine_code
varchar(32) DEFAULT NULL COMMENT '刷卡机编号',
exchange_time
datetime DEFAULT NULL COMMENT '交易时间',
reference_num
varchar(45) DEFAULT NULL COMMENT '参考号',
batch_no
varchar(32) DEFAULT NULL COMMENT '批次号',
voucher_no
varchar(32) DEFAULT NULL COMMENT '凭证号',
auth_no
varchar(32) DEFAULT NULL COMMENT '授权码',
trace_no
varchar(32) DEFAULT NULL COMMENT '流水号',
credit_card_code
varchar(32) DEFAULT NULL COMMENT '信用卡卡号',
guangshang_card_code
varchar(32) DEFAULT NULL COMMENT '广商卡号',
opening_bank_name
varchar(32) DEFAULT NULL COMMENT '开户行',
machine_remark
varchar(64) DEFAULT NULL COMMENT '刷卡机备用',
machine_remark1
varchar(64) DEFAULT NULL COMMENT '刷卡机备用1',
machine_remark2
varchar(64) DEFAULT NULL COMMENT '刷卡机备用2',
machine_bill_photo_uri
varchar(500) DEFAULT NULL COMMENT '刷卡单照片',
people_num
int(11) DEFAULT NULL COMMENT '人数',
menu_order_num
varchar(64) DEFAULT NULL COMMENT '菜单单号',
meal_type
varchar(45) DEFAULT NULL COMMENT '用餐类型(早午晚)',
menu_bill_type
varchar(45) DEFAULT NULL COMMENT '开票类型',
scale_type
varchar(45) DEFAULT NULL COMMENT '用餐规模类型(包房/桌)',
room_table_num
varchar(45) DEFAULT NULL COMMENT '房号/桌号',
original_ticket_uri
varchar(500) DEFAULT NULL COMMENT '原始消费小票',
invoice_num
varchar(64) DEFAULT NULL COMMENT '发票号码',
invoice_code
varchar(64) DEFAULT NULL COMMENT '发票代码',
invoice_password
varchar(200) DEFAULT NULL COMMENT '发票密码',
check_code
varchar(64) DEFAULT NULL COMMENT '校验码',
invoice_item
varchar(64) DEFAULT NULL COMMENT '开票项目',
invoice_rate
decimal(15,4) DEFAULT NULL COMMENT '发票税率',
invoice_remark
varchar(100) DEFAULT NULL COMMENT '发票备注',
invoice_remark1
varchar(100) DEFAULT NULL COMMENT '发票备注1',
invoice_photo_uri
varchar(500) DEFAULT NULL COMMENT '发票照片uri',
add_machine_status
int(2) NOT NULL DEFAULT '0' COMMENT '添加刷卡机状态',
add_machine_operator
varchar(64) DEFAULT NULL COMMENT '添加刷卡机操作者',
add_menu_status
int(2) NOT NULL DEFAULT '0' COMMENT '添加菜单状态',
add_menu_operator
varchar(64) DEFAULT NULL COMMENT '添加菜单操作者',
add_invoice_status
int(2) NOT NULL DEFAULT '0' COMMENT '添加发票状态',
add_invoice_operator
varchar(64) DEFAULT NULL COMMENT '添加发票操作者',
customer_confirm_status
int(2) NOT NULL DEFAULT '0' COMMENT '客户回款确认状态(0未确认,1已确认)',
merchant_confirm_status
int(2) NOT NULL DEFAULT '0' COMMENT '商户回款确认状态(0未确认,1已确认)',
enter_account_status
int(2) NOT NULL DEFAULT '0' COMMENT '入账状态(0未入账,1已入账)',
pay_status
int(2) NOT NULL DEFAULT '0' COMMENT '支付状态(0未付款,1已付款)',
auth_user_code
varchar(64) DEFAULT NULL COMMENT '授权用户号',
auth_nick_name
varchar(64) DEFAULT NULL COMMENT '授权用户昵称',
accept_user_code
varchar(64) DEFAULT '' COMMENT '接受任务的用户编号',
accept_nick_name
varchar(64) DEFAULT '' COMMENT '接受任务的用户昵称',
reservations_code
varchar(64) DEFAULT NULL COMMENT '所属的预约单的单号',
create_time
datetime DEFAULT CURRENT_TIMESTAMP,
creator
varchar(45) DEFAULT NULL,
update_time
datetime DEFAULT CURRENT_TIMESTAMP,
updator
varchar(45) DEFAULT NULL,
deleted
bit(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (id
) USING BTREE,
KEY index_add_machine_status
(add_machine_status
) USING BTREE,
KEY index_add_menu
(add_menu_status
) USING BTREE,
KEY index_add_invoice
(add_invoice_status
) USING BTREE,
KEY index_createTime
(create_time
) USING BTREE,
KEY index_deleted
(deleted
) USING BTREE,
KEY index_order_code
(order_code
) USING BTREE,
KEY index_order_time
(order_time
) USING BTREE,
KEY index_order_stauts
(order_status
) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='订单';
实体:
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("br_order")
public class Order extends Model
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单号
*/
@TableField("order_code")
private String orderCode;
/**
* 订单时间
*/
@TableField("order_time")
private Date orderTime;
/**
* 订单时间字符串
*/
@TableField(exist = false)
private String orderTimeStr;
/**
* 订单总额
*/
@TableField("order_amount")
private BigDecimal orderAmount;
/**
* 代理商ID
*/
@TableField("agent_id")
private Integer agentId;
/**
* 代理商名称
*/
@TableField("agent_name")
private String agentName;
/**
* 分销商ID
*/
@TableField("distributor_id")
private Integer distributorId;
/**
* 分销商名称
*/
@TableField("distributor_name")
private String distributorName;
/**
* 商户id
*/
@TableField("merchant_id")
private Integer merchantId;
/**
* 商户名称
*/
@TableField("merchant_name")
private String merchantName;
/**
* 订单类型编码
*/
@TableField("order_type_code")
private String orderTypeCode;
/**
* 订单类型名称
*/
@TableField("order_type_name")
private String orderTypeName;
/**
* 订单状态 0:作废,1:等待初审,2:等待补充,3:等待再审,4:等待派送,5:已被接受任务,6:完成
*/
@TableField("order_status")
private Integer orderStatus;
/**
* 是否需要审核
*/
@TableField("need_examine")
private Boolean needExamine;
/**
* 审核状态
*/
@TableField("examine_status")
private String examineStatus;
/**
* 产品服务编码(,隔开)
*/
@TableField("service_code")
private String serviceCode;
/**
* 产品服务名称(,隔开)
*/
@TableField("service_name")
private String serviceName;
/**
* 业务员id
*/
@TableField("salesman_id")
private Integer salesmanId;
/**
* 业务员名称
*/
@TableField("salesman_name")
private String salesmanName;
/**
* 业务员点数
*/
@TableField("sale_rate")
private BigDecimal saleRate;
/**
* 订单扣款率
*/
@TableField("deductions_rate")
private BigDecimal deductionsRate;
/**
* 客户id
*/
@TableField("customer_id")
private Integer customerId;
/**
* 客户名称
*/
@TableField("customer_name")
private String customerName;
/**
* 公司id
*/
@TableField("company_id")
private Integer companyId;
/**
* 公司名称
*/
@TableField("company_name")
private String companyName;
/**
* 信用卡卡号
*/
@TableField("credit_card_num")
private String creditCardNum;
/**
* 用餐人数
*/
@TableField("num_of_meals")
private Integer numOfMeals;
/**
* 用餐时间(午餐,晚餐)
*/
@TableField("meal_time")
private String mealTime;
/**
* 开票内容
*/
@TableField("bill_content")
private String billContent;
/**
* 备注
*/
private String remark;
/**
* 初审
*/
@TableField("first_examine_remark")
private String firstExamineRemark;
/**
* 再审备注
*/
@TableField("second_examine_remark")
private String secondExamineRemark;
/**
* 刷卡机编号
*/
@TableField("card_machine_code")
private String cardMachineCode;
/**
* 交易时间
*/
@TableField("exchange_time")
private Date exchangeTime;
/**
* 交易时间字符串
*/
@TableField(exist = false)
private String exchangeTimeStr;
/**
* 参考号
*/
@TableField("reference_num")
private String referenceNum;
/**
* 批次号
*/
@TableField("batch_no")
private String batchNo;
/**
* 凭证号
*/
@TableField("voucher_no")
private String voucherNo;
/**
* 授权号
*/
@TableField("auth_no")
private String authNo;
/**
* 流水号
*/
@TableField("trace_no")
private String traceNo;
/**
* 刷卡机付款信用卡信息编码
*/
@TableField("credit_card_code")
private String creditCardCode;
/**
* 广商卡号
*/
@TableField("guangshang_card_code")
private String guangshangCardCode;
/**
* 开户行
*/
@TableField("opening_bank_name")
private String openingBankName;
/**
* 刷卡机备用
*/
@TableField("machine_remark")
private String machineRemark;
/**
* 刷卡机备用1
*/
@TableField("machine_remark1")
private String machineRemark1;
/**
* 刷卡机备用2
*/
@TableField("machine_remark2")
private String machineRemark2;
/**
* 刷卡单照片
*/
@TableField("machine_bill_photo_uri")
private String machineBillPhotoUri;
/**
* 人数
*/
@TableField("people_num")
private Integer peopleNum;
/**
* 菜单单号
*/
@TableField("menu_order_num")
private String menuOrderNum;
/**
* 用餐类型(早午晚)
*/
@TableField("meal_type")
private String mealType;
/**
* 开票类型
*/
@TableField("menu_bill_type")
private String menuBillType;
/**
* 用餐规模类型(包房/桌)
*/
@TableField("scale_type")
private String scaleType;
/**
* 房号/桌号
*/
@TableField("room_table_num")
private String roomTableNum;
/**
* 原始消费小票
*/
@TableField("original_ticket_uri")
private String originalTicketUri;
/**
* 发票号码
*/
@TableField("invoice_num")
private String invoiceNum;
/**
* 发票代码
*/
@TableField("invoice_code")
private String invoiceCode;
/**
* 发票密码
*/
@TableField("invoice_password")
private String invoicePassword;
/**
* 校验码
*/
@TableField("check_code")
private String checkCode;
/**
* 开票项目
*/
@TableField("invoice_item")
private String invoiceItem;
/**
* 发票税率
*/
@TableField("invoice_rate")
private BigDecimal invoiceRate;
/**
* 发票备注
*/
@TableField("invoice_remark")
private String invoiceRemark;
/**
* 发票备注1
*/
@TableField("invoice_remark1")
private String invoiceRemark1;
/**
* 发票照片uri
*/
@TableField("invoice_photo_uri")
private String invoicePhotoUri;
/**
* 添加刷卡机状态 0未补充,1已补充,2免补充
*/
@TableField("add_machine_status")
private Integer addMachineStatus;
/**
* 添加刷卡机操作者
*/
@TableField("add_machine_operator")
private String addMachineOperator;
/**
* 添加菜单状态 0未补充,1已补充,2免补充
*/
@TableField("add_menu_status")
private Integer addMenuStatus;
/**
* 添加菜单操作者
*/
@TableField("add_menu_operator")
private String addMenuOperator;
/**
* 添加发票状态 0未补充,1已补充,2免补充
*/
@TableField("add_invoice_status")
private Integer addInvoiceStatus;
/**
* 添加发票操作者
*/
@TableField("add_invoice_operator")
private String addInvoiceOperator;
/**
* 客户回款确认状态
*/
@TableField("customer_confirm_status")
private Integer customerConfirmStatus;
/**
* 商户回款确认状态
*/
@TableField("merchant_confirm_status")
private Integer merchantConfirmStatus;
/**
* 入账状态(0未入账,1已入账)
*/
@TableField("enter_account_status")
private Integer enterAccountStatus;
/**
* 支付状态(0未付款,1已付款)
*/
@TableField("pay_status")
private Integer payStatus;
/**
* 授权用户的用户号
*/
@TableField("auth_user_code")
private String authUserCode;
/**
* 授权用户的用户昵称
*/
@TableField("auth_nick_name")
private String authNickName;
/**
* 接受任务的帐号
*/
@TableField("accept_user_code")
private String acceptUserCode;
/**
* 接受任务的帐号昵称
*/
@TableField("accept_nick_name")
private String acceptNickName;
/**
* 所属预约单的标识
*/
@TableField("reservations_code")
private String reservationsCode;
@TableField("create_time")
private Date createTime;
private String creator;
@TableField("update_time")
private Date updateTime;
private String updator;
private Boolean deleted;
@Override
protected Serializable pkVal() {
return this.id;
}
}
// 条件封装
String statusIn = "2,3";
QueryWrapper wrapper = new QueryWrapper().eq(DELETE_FLAG_COLUMN, delete);
wrapper = wrapper.in("order_status", Arrays.asList(statusIn.split(",")));
List agentIds = new ArrayList<>();
agentIds.add(4);
List distributorIds = new ArrayList<>();
wrapper.and(true, w -> w.in("agent_id", agentIds).or().in("distributor_id", distributorIds));
// 查询分页
IPage
这和你的实体无关,只是单纯的 QueryWrapper 构建 sql, 你这种构建方式我没复现出 bug 的
那你需要怎样的demo。我也不知道给你
// 条件封装 String statusIn = "2,3"; QueryWrapper wrapper = new QueryWrapper().eq(DELETE_FLAG_COLUMN, delete); wrapper = wrapper.in("order_status", Arrays.asList(statusIn.split(","))); List agentIds = new ArrayList<>(); agentIds.add(4); List distributorIds = new ArrayList<>(); wrapper.and(true, w -> w.in("agent_id", agentIds).or().in("distributor_id", distributorIds)); wrapper.getSqlSegment()的值符合你所说的那种情况
我自己也试着debug了一下,看到and的lambda结束后括号之间的QueryWrapper中的NormalSegmantList里面放的是 "agent_id" IN [4] OR, 会不会是什么循环截掉OR的时候,把 IN 和 [4]给截掉了。我对你们的框架构成并不怎么清楚,如果可以提供下执行列表的话,我看看能不能去试着把问题原因调试出来
主要看 wrapper.getSqlSegment()
这个的值
deleted = #{ew.paramNameValuePairs.MPGENVAL1} AND order_status IN (#{ew.paramNameValuePairs.MPGENVAL2},#{ew.paramNameValuePairs.MPGENVAL3}) AND order_status = #{ew.paramNameValuePairs.MPGENVAL4} AND ( agent_id IN (#{ew.paramNameValuePairs.MPGENVAL5}) ) 2018-11-02 15:39:25.925 DEBUG 9772 --- [nio-8080-exec-5] c.b.d.o.order.OrderMapper.selectPage : ==> Preparing: SELECT COUNT(1) FROM ( SELECT id,order_code,order_time,order_amount,agent_id,agent_name,distributor_id,distributor_name,merchant_id,merchant_name,order_type_code,order_type_name,order_status,need_examine,examine_status,service_code,service_name,salesman_id,salesman_name,sale_rate,deductions_rate,customer_id,customer_name,company_id,company_name,credit_card_num,num_of_meals,meal_time,bill_content,remark,first_examine_remark,second_examine_remark,card_machine_code,exchange_time,reference_num,batch_no,voucher_no,auth_no,trace_no,credit_card_code,guangshang_card_code,opening_bank_name,machine_remark,machine_remark1,machine_remark2,machine_bill_photo_uri,people_num,menu_order_num,meal_type,menu_bill_type,scale_type,room_table_num,original_ticket_uri,invoice_num,invoice_code,invoice_password,check_code,invoice_item,invoice_rate,invoice_remark,invoice_remark1,invoice_photo_uri,add_machine_status,add_machine_operator,add_menu_status,add_menu_operator,add_invoice_status,add_invoice_operator,customer_confirm_status,merchant_confirm_status,enter_account_status,pay_status,auth_user_code,auth_nick_name,accept_user_code,accept_nick_name,reservations_code,create_time,creator,update_time,updator,deleted FROM br_order WHERE deleted = ? AND order_status IN (?,?) AND order_status = ? AND ( null ) ORDER BY create_time DESC ) TOTAL 2018-11-02 15:39:25.926 DEBUG 9772 --- [nio-8080-exec-5] c.b.d.o.order.OrderMapper.selectPage : ==> Parameters: false(Boolean), 2(String), 3(String), 2(String) 2018-11-02 15:39:25.937 DEBUG 9772 --- [nio-8080-exec-5] c.b.d.o.order.OrderMapper.selectPage : ==> Preparing: SELECT id,order_code,order_time,order_amount,agent_id,agent_name,distributor_id,distributor_name,merchant_id,merchant_name,order_type_code,order_type_name,order_status,need_examine,examine_status,service_code,service_name,salesman_id,salesman_name,sale_rate,deductions_rate,customer_id,customer_name,company_id,company_name,credit_card_num,num_of_meals,meal_time,bill_content,remark,first_examine_remark,second_examine_remark,card_machine_code,exchange_time,reference_num,batch_no,voucher_no,auth_no,trace_no,credit_card_code,guangshang_card_code,opening_bank_name,machine_remark,machine_remark1,machine_remark2,machine_bill_photo_uri,people_num,menu_order_num,meal_type,menu_bill_type,scale_type,room_table_num,original_ticket_uri,invoice_num,invoice_code,invoice_password,check_code,invoice_item,invoice_rate,invoice_remark,invoice_remark1,invoice_photo_uri,add_machine_status,add_machine_operator,add_menu_status,add_menu_operator,add_invoice_status,add_invoice_operator,customer_confirm_status,merchant_confirm_status,enter_account_status,pay_status,auth_user_code,auth_nick_name,accept_user_code,accept_nick_name,reservations_code,create_time,creator,update_time,updator,deleted FROM br_order WHERE deleted = ? AND order_status IN (?,?) AND order_status = ? AND ( null ) ORDER BY create_time DESC 2018-11-02 15:39:25.937 DEBUG 9772 --- [nio-8080-exec-5] c.b.d.o.order.OrderMapper.selectPage : ==> Parameters: false(Boolean), 2(String), 3(String), 2(String) 2018-11-02 15:39:25.948 DEBUG 9772 --- [nio-8080-exec-5] c.b.d.o.order.OrderMapper.selectPage : <== Total: 0
deleted = #{ew.paramNameValuePairs.MPGENVAL1} AND order_status IN (#{ew.paramNameValuePairs.MPGENVAL2},#{ew.paramNameValuePairs.MPGENVAL3}) AND order_status = #{ew.paramNameValuePairs.MPGENVAL4} AND ( agent_id IN (#{ew.paramNameValuePairs.MPGENVAL5}) )
输出SqlSegment好像是没问题
那你检查一下是不是可能和什么插件啊,或者夹在orm 与 db 中间的什么东西的原因
嗯。。现在还成了null了。。。纳闷。。
这个会跟mybatis的版本有关吗
数据库无关,可能是被其他什么东西给干掉了,你自己排查一下, debug 跟踪一下
没啥其他的东西,也就SpringBoot和Druid
那就断点跟踪一下
CREATE TABLE
br_order
(id
int(11) NOT NULL AUTO_INCREMENT, ... ...大兄弟 ,这是生产代码吧? 这么贴 真的好吗 [手动微笑]
尝试使用 3.0.7.5-SNAPSHOT
版本,应该是已修复
尝试使用
3.0.7.5-SNAPSHOT
版本,应该是已修复
测试了,问题已修复,发布版大概什么时候有?
明年吧,快照版可以用,我这边也都在用
尝试使用 3.0.7
当前使用版本(必须填写清楚,否则不予处理)
3.0.5和3.0.6.2-SNAPSHOT
该问题是怎么引起的?(注意!!!请使用最新版(具体版本查看CHANGELOG.md),如还有该问题再提 issue!,否则直接拒绝,毫不商量!!!)
sql拼接错误,wrapper.and的lambda拼接内两个in条件出错
重现步骤
QueryWrapper wrapper = new QueryWrapper().eq(DELETE_FLAG_COLUMN, delete);
List agentIds = new ArrayList<>();
agentIds.add(4);
List distributorIds = new ArrayList<>();
wrapper.and(w-> w.in("agent_id", agentIds).or().in("distributor_id", distributorIds)); IPage page = orderService.page(new Page<>(curPage, pageSize), wrapper.orderBy(true, orderRule, orderField));
报错信息
SELECT COUNT(1) FROM br_order WHERE deleted = ? AND order_status IN (?, ?) AND order_status = ? AND (agent_id) 结尾正常应该为 and (agent_id in (4))