MybatisPlus 如何进行关联查询
时间: 2024-02-23 18:54:18 浏览: 130
Mybatis多对多关联查询
MybatisPlus提供了多种方式进行关联查询,其中一种常用的方式是使用注解来绑定关联查询。下面是一个示例:
```java
// 定义实体类
@Data
public class User {
private Long id;
private String name;
private Long roleId;
// 省略其他属性
}
@Data
public class Role {
private Long id;
private String roleName;
// 省略其他属性
}
// 定义Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT u.*, r.role_name FROM user u LEFT JOIN role r ON u.role_id = r.id WHERE u.id = #{id}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "roleId", column = "role_id"),
@Result(property = "role.roleName", column = "role_name")
})
User selectUserWithRoleById(Long id);
}
// 使用关联查询
User user = userMapper.selectUserWithRoleById(1L);
System.out.println(user.getName()); // 输出用户名称
System.out.println(user.getRole().getRoleName()); // 输出角色名称
```
在上面的示例中,我们使用`@Select`注解来编写关联查询的SQL语句,并使用`@Results`注解来指定结果映射关系。通过这种方式,我们可以在查询用户信息的同时,关联查询出用户所属的角色信息。
阅读全文