mybatis-plus アノテーション方式で一対多・多対多を実現

データベース操作を使用する場合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();

おすすめ

転載: blog.csdn.net/asd54090/article/details/130008690