LambdaQueryWrapper关联表查询
时间: 2023-10-12 09:10:31 浏览: 256
Spring Boot-MybatisPlus表格分页与下拉分页查询.docx
LambdaQueryWrapper是Mybatis-Plus提供的一种基于lambda表达式的查询构造器,用于构建复杂的SQL查询语句。在进行关联表查询时,可以通过LambdaQueryWrapper的join方法来实现。
例如,假设我们有两个实体类User和Order,Order类中有一个userId属性与User类中的id属性关联。现在我们需要查询userId为1的用户的所有订单信息,可以使用LambdaQueryWrapper进行关联表查询:
```java
LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Order::getUserId, 1)
.inSql(Order::getId, "select id from user where id = 1");
List<Order> list = orderMapper.selectList(wrapper);
```
在上面的代码中,我们通过eq方法设置了userId为1的条件,然后通过inSql方法来查询用户id为1的订单信息。在inSql方法中,我们使用了子查询的方式来查询与用户id为1对应的订单id集合,从而实现了关联表查询。
另外,如果需要进行多表关联查询,可以通过join方法来关联多个表,例如:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "Tom")
.join(Order.class, Order::getUserId, User::getId)
.eq(Order::getStatus, 1);
List<User> list = userMapper.selectList(wrapper);
```
在上面的代码中,我们通过join方法关联了Order表,并通过eq方法设置了Order表中status为1的条件,从而查询了用户Tom的所有符合条件的订单信息。
阅读全文