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

发布时间:2024年01月11日

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连接。

文章来源:https://blog.csdn.net/weixin_45418705/article/details/135532224
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。