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();

你可能感兴趣的:(mybatis,java,spring)