mybatis plus LambdaQueryWrapper 分页关联查询
时间: 2023-11-07 11:00:26 浏览: 61
MyBatis-Plus LambdaQueryWrapper是MyBatis-Plus框架中的一个查询构建器,可以使用Lambda表达式来构建查询条件,使得查询语句更加简洁易懂,同时也提供了对分页查询的支持。
在LambdaQueryWrapper中,我们可以使用join方法来实现关联查询。关联查询可以使用Inner Join、Left Join、Right Join等不同的关联方式,具体使用方式如下:
```java
// 构建LambdaQueryWrapper对象
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
// 添加关联查询条件
wrapper.eq(User::getUserId, 1)
.leftJoin(UserRole::getUserId, UserRole::getUserId)
.eq(UserRole::getRoleId, 2);
// 分页查询
Page<User> page = new Page<>(1, 10);
IPage<User> result = userService.page(page, wrapper);
```
在上面的代码中,我们通过LambdaQueryWrapper对象的leftJoin方法来添加关联查询条件,将User表和UserRole表通过UserId字段进行关联,然后使用eq方法来添加查询条件,查询UserId为1且RoleId为2的记录。最后,我们使用MyBatis-Plus提供的分页查询方法page来实现分页查询。
需要注意的是,在LambdaQueryWrapper中进行关联查询时,需要注意表名的设置。如果关联的表名与实体类名不一致,需要在实体类中添加@Table注解,并在注解中设置表名,例如:
```java
@Table(name = "sys_user_role")
public class UserRole {
// 省略属性和方法
}
```
在上面的代码中,我们通过@Table注解来设置UserRole实体类对应的表名为sys_user_role,这样在关联查询时就可以正确的指定表名。