MyBatis Plus wrapper A and (B or C or D)

文章描述了如何在Java中使用LambdaQueryWrapper进行数据库查询,处理整数列表以查找包含特定数字的行,通过嵌套的like操作符构建复杂的查询条件。
摘要由CSDN通过智能技术生成

Rt,怎么写这个wrapper呢?

例如我们有一个整数列表,数据库中存的是整数列表的字符串形式:

list数据库中的存储
1,2,3[1,2,3]

我们想查包含某几个数字的所有行。例如如果有1,那么结果中要有[1,2,3]、[1]。

// A
LambdaQueryWrapper<Xxx> lqw = new LambdaQueryWrapper<>();
A.eq(Xxx:getYyy());
List<Integer> list = new ArrayList<>();
list.add(1); list.add(2);
lqw.and(wp -> list.forEach(a -> {
	wp.or(wpp -> wpp.like("[" + a + "]")
		.or()
		.like("[" + a + ","))
		.or()
		.like(" " + a + "]")
		.or()
		.like(" " + a + " ");
}));

上面的lqw相当于A,A.and()中 我们想要 (B or C or D),and中的wp就用来构造这个;wpp就是内层的B或C或D。wp用or来连接wpp,然后被lqw用and连接。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值