mp的关联查询不写sql
时间: 2024-05-29 17:07:01 浏览: 138
在使用Mybatis-Plus时,可以通过实体类的关联属性进行关联查询,而无需编写SQL语句。具体的实现方法为,在主实体类中定义关联属性,并使用Mybatis-Plus提供的注解进行关联,例如:
```java
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
@TableField(exist = false)
private List<Role> roles;
}
public class Role {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
@TableField("user_id")
private Long userId;
}
```
在以上代码中,User实体类中定义了一个List类型的roles属性,用于表示与该用户相关联的所有角色。同时,在Role实体类中,通过@TableField注解指定了与User实体类关联的外键userId。
这样,在进行查询时,只需要使用Mybatis-Plus提供的Wrapper对象构造查询条件,然后使用Mybatis-Plus提供的selectList方法进行查询即可,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三");
List<User> userList = userMapper.selectList(wrapper);
```
在以上代码中,首先创建一个QueryWrapper对象wrapper,并通过eq方法指定查询条件为name等于“张三”。然后,通过userMapper.selectList(wrapper)方法进行查询,即可得到所有符合条件的User对象列表。此时,每个User对象中的roles属性已经自动填充了与该用户相关联的所有角色信息。
阅读全文