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提供了:
- 一对一
- 一对多
- 多对一
- 多对多
- 嵌套查询
实现对象之间复杂的多表关系映射。