【MyBatis Plus】MyBatis Plus的多表操作包括什么?

MyBatis Plus提供了丰富的多表操作,包括:

1. 一对一关联

@EqualsAndHashCode(callSuper = true) 
@TableName("user")
public class User { 

    @TableId("id")
    private Integer id;

    @OneToOne 
    @JoinColumn("role_id")  
    private Role role;
}

在User表和Role表之间建立一对一关系。

2. 一对多关联

@TableName("user")
public class User {

    @TableId
    private Long id;

    @OneToMany  
    @JoinColumn("uid")
    private List<Order> orders;
}


一用户对应多订单。

3. 多对一关联

@TableName("order")
public class Order {

    @TableId
    private Long id;

    @ManyToOne
    @JoinColumn("uid")   
    private User user;
}  

多订单对应一用户。

4. 多对多关联

@TableName("user")
public class User {

    @TableId
    private Long id;

    @ManyToMany
    @JoinTable(name = "user_role")  
    private List<Role> roles; 
}

@TableName("role")
public class Role {
   ....
}  

一用户对应多角色。

5.嵌套查询

public interface UserMapper extends BaseMapper<User> {

   @Select("select * from user left join role on user.id = role.id")
   List<User> selectNested() 
}

通过嵌套查询实现多表查询。

总的来说,Mybatis Plus提供了:

  • 一对一
  • 一对多
  • 多对一
  • 多对多
  • 嵌套查询

实现对象之间复杂的多表关系映射。