mybatis-plus注解方式实现一对多和多对多
使用mybatis-plus
进行数据库操作时,注解实现一对多和多对多的关系非常便捷。
对于一对多的关系,我们可以使用@OneToMany
注解来实现。以下是示例代码:
@TableName("tb_order")
public class Order {@TableId(type = IdType.AUTO)private Long id;private Long userId;private String orderNo;@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)@JoinColumn(name = "order_id")private List<OrderItem> orderItems;// getter和setter方法
}@TableName("tb_order_item")
public class OrderItem {@TableId(type = IdType.AUTO)private Long id;private Long orderId;private String skuCode;private Integer quantity;// getter和setter方法
}
对于多对多的关系,我们可以使用@ManyToMany
注解来实现,示例代码如下:
@TableName("tb_user")
public class User {@TableId(type = IdType.AUTO)private Long id;private String username;private String password;@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)@JoinTable(name = "tb_user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))private List<Role> roles;// getter和setter方法
}@TableName("tb_role")
public class Role {@TableId(type = IdType.AUTO)private Long id;private String roleName;@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)@JoinTable(name = "tb_user_role", joinColumns = @JoinColumn(name = "role_id"), inverseJoinColumns = @JoinColumn(name = "user_id"))private List<User> users;// getter和setter方法
}
通过使用以上的注解,我们可以轻松实现一对多和多对多的关系。
上述示例是针对mybatis-plus框架进行数据库操作的注解实现一对多和多对多的关系的示例代码。
一对多的查询示例:
Order order = orderMapper.selectById(1L);
List<OrderItem> orderItems = order.getOrderItems();
多对多的查询示例:
User user = userMapper.selectById(1L);
List<Role> roles = user.getRoles();