LambdaQueryWrapper 联表查询,返回List<OrderVO>
时间: 2024-10-27 09:09:18 浏览: 48
LambdaQueryWrapper是阿里巴巴开源的MyBatis Plus中提供的一种高级SQL动态构建工具,它简化了复杂的数据库查询操作,尤其是联表查询。当需要从多个关联表中获取数据,并将其转化为List<OrderVO>这样的列表形式时,你可以使用LambdaQueryWrapper结合CriteriaAPI来构建查询条件。
例如,假设你有一个Order表和一个User表通过userId关联,你想获取每个订单及其对应的用户信息并转换为OrderVO对象的列表,可以这样做:
```java
List<OrderVO> orderVos = OrderMapper.selectBase(new LambdaQueryWrapper<Order>() {
// 定义查询条件,如:where userId = #{userId}
@Query(value = "SELECT o.*, u.* FROM order o LEFT JOIN user u ON o.userId = u.id")
public List<OrderVO> selectWithJoin(UserIdType userId);
})
.map(order -> new OrderVO(order, UserMapper.getUserById(order.getUserId())));
```
在这个例子中,`selectWithJoin`方法接收一个lambda表达式作为参数,它构造了一个包含所有需要关联字段的SQL查询,并将结果映射到OrderVO对象上。`map`函数则用于将Order对象转换为OrderVO对象。
阅读全文