mybatis plus query wapper 构造多表关联查询的条件
时间: 2023-09-18 10:07:23 浏览: 97
Mybatis Plus Query Wrapper 可以通过多种方式构造多表关联查询的条件,以下是其中一种常用的方式:
1. 首先,定义需要查询的多个表的实体类,例如:
```
@Data
public class Order {
private Long id;
private Long userId;
private String orderNo;
private BigDecimal totalPrice;
private Date createTime;
private Date updateTime;
}
@Data
public class User {
private Long id;
private String name;
private String email;
private Date createTime;
private Date updateTime;
}
```
2. 在查询方法中,使用 QueryWrapper 对象构造查询条件,例如:
```
QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order.user_id", userId).eq("order.order_no", orderNo)
.ge("order.create_time", startTime).le("order.create_time", endTime)
.eq("user.name", userName).eq("user.email", userEmail);
```
3. 在构造条件时,使用表别名来指定查询的表,例如上面的例子中,使用了 order 和 user 作为 Order 和 User 表的别名。
4. 在构造条件时,使用 eq、ge、le 等方法来指定查询条件的操作符和值,例如 eq("order.user_id", userId) 表示查询 Order 表中 user_id 等于 userId 的记录。
5. 最后,使用 Mybatis Plus 提供的 selectMaps 方法进行查询,例如:
```
List<Map<String, Object>> result = orderMapper.selectMaps(queryWrapper);
```
这样就可以实现多表关联查询的条件构造和查询操作。
阅读全文