Mybatis-Plus 如何实现一对多关系 举例 用户与角色

Mybatis-Plus 一对多Mybatis-Plus

不写一句sql语句实现一对多

首先来看效果
Mybatis-Plus 如何实现一对多关系 举例 用户与角色_第1张图片

Mysql数据库

用户表
角色表
用户与角色的中间表
中间表如下
Mybatis-Plus 如何实现一对多关系 举例 用户与角色_第2张图片
将三张表通过Mybatis Plus 的代码生成器生成到目录下

Pojo

在User的Pojo 添加List

package com.zcx.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

/**
 * @author zhaochangxin
 * @date 2022/3/2 14:34
 */
// 生成getAndSet方法
@Data
// 有参
@AllArgsConstructor
// 无参
@NoArgsConstructor
@TableName("platform_usertest")
public class User implements Serializable {
    // 默认自增字段
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 状态
    private int status;
    // 创建者
    @TableField("created_by")
    private BigInteger createdBy;
    // 创建时间
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    // 字段添加填充内容
    @TableField(value = "created_date", fill = FieldFill.INSERT)
    private Date createdDate;
    // 最后修改者
    @TableField("last_modified_by")
    private BigInteger lastModifiedBy;
    // 最后修改时间
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    // 字段添加填充内容
    @TableField(value = "last_modified", fill = FieldFill.INSERT_UPDATE)
    private Date lastModified;
    // 所有者
    private String owner;
    // 乐观锁
    @Version
    private Integer version;
    // 逻辑删除
    @TableLogic
    private Integer deleted;
    // 权限
    @TableField(exist = false)
    private List roles;
}

IuserService

package com.zcx.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zcx.pojo.User;

import java.util.List;

/**
 * @author zhaochangxin
 * @Title: IUserService
 * @Package com.zcx.service
 * @Description: IUserService
 * @date 2022/3/30 17:21
 */
public interface IUserService extends IService {
    List queryAllUser();
}

在ServiceImpl 实现该接口方法

package com.zcx.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

/**
 * @author zhaochangxin
 * @date 2022/3/2 14:34
 */
// 生成getAndSet方法
@Data
// 有参
@AllArgsConstructor
// 无参
@NoArgsConstructor
@TableName("platform_usertest")
public class User implements Serializable {
    // 默认自增字段
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 状态
    private int status;
    // 创建者
    @TableField("created_by")
    private BigInteger createdBy;
    // 创建时间
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    // 字段添加填充内容
    @TableField(value = "created_date", fill = FieldFill.INSERT)
    private Date createdDate;
    // 最后修改者
    @TableField("last_modified_by")
    private BigInteger lastModifiedBy;
    // 最后修改时间
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    // 字段添加填充内容
    @TableField(value = "last_modified", fill = FieldFill.INSERT_UPDATE)
    private Date lastModified;
    // 所有者
    private String owner;
    // 乐观锁
    @Version
    private Integer version;
    // 逻辑删除
    @TableLogic
    private Integer deleted;
    // 权限
    @TableField(exist = false)
    private List roles;
}

有问题或更好的办法请留言告知,谢谢您的观看。

你可能感兴趣的:(Mybatis-Plus 如何实现一对多关系 举例 用户与角色)