データベース操作を使用する場合mybatis-plus
、アノテーションは 1 対多および多対多の関係を実装するのに非常に便利です。
一対多の関係の場合、@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方法
}
上記のアノテーションを使用することで、1 対多および多対多の関係を簡単に実装できます。
上記の例は、mybatis-plus フレームワークでデータベース操作のアノテーションに 1 対多および多対多の関係を実装するためのサンプル コードです。
1 対多のクエリの例:
Order order = orderMapper.selectById(1L);
List<OrderItem> orderItems = order.getOrderItems();
多対多クエリの例:
User user = userMapper.selectById(1L);
List<Role> roles = user.getRoles();