
有一个实体类需要实现多个字段的模糊查询,字段的数量不是一定的,想要在实体类传进来的时候,对于不为空的字段做模糊查询,有没有什么比较好不怎么屎的实现方法?
1 ikas 2023-09-17 16:15:40 +08:00 自己扩展一个 query 方法注入到 mybatisplus 中或者写一个 SelectProvider |
2 Vkery 2023-09-17 16:32:43 +08:00 自己写一个工具类,可以通过反射将实体类转为 Query |
3 itechify PRO 例如?给个例子 |
4 Foxkeh 2023-09-17 19:47:09 +08:00 官方的就支持, 比如查询条件拼接的时候 eq(StringUtils.hasText(Order::getStatus, req.getStatus()) 改为 eq(StringUtils.hasText(req.getStatus()), Order::getStatus, req.getStatus()) |
5 Foxkeh 2023-09-17 19:48:21 +08:00 @Foxkeh 不好意思粘贴错了, 是类似这样改 eq(Order::getStatus, req.getStatus()) 改为 eq(StringUtils.hasText(req.getStatus()), Order::getStatus, req.getStatus()) |
6 wellerman 2023-09-17 21:18:35 +08:00 10 个字段内列出来也不是什么问题: public LambdaQuery<T> eqIfPresent(SFunction<T, ?> column, Object val) { if (val != null) { return (LambdaQuery<T>) super.eq(column, val); } return typedThis; } |