Mybatis-Plus 如何实现一对多关系 举例 用户与角色
Mybatis-Plus 一对多Mybatis-Plus
不写一句sql语句实现一对多
首先来看效果

Mysql数据库
用户表
角色表
用户与角色的中间表
中间表如下

将三张表通过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<Role> 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<User> {
    List<User> 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<Role> roles;
}
Mybatis-Plus 如何实现一对多关系 举例 用户与角色的更多相关文章
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项  DML  DDL DQL mysql面试题 truncate与delete的区别
		DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ... 
- Mybatis框架中实现双向一对多关系映射
		学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ... 
- MyBatis之级联——一对多关系
		上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础 ... 
- MyBatis日记(五):一对一关系,一对多关系
		一对一关系: 首先在数据库中新增地址表(t_address)用于存储人员的地址信息: CREATE TABLE `t_address` ( `id` ) NOT NULL AUTO_INCREMENT ... 
- MyBatis加强(1)~myBatis对象关系映射(多对一关系、一对多关系)、延迟/懒加载
		一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部 ... 
- 0050 MyBatis关联映射--一对多关系
		一对多关系更加常见,比如用户和订单,一个用户可以有多个订单 DROP TABLE IF EXISTS customer; /*用户表*/ CREATE TABLE customer( `pk` INT ... 
- [NHibernate]一对多关系(级联删除,级联添加)
		目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及, ... 
- hibernate中一对多关系中的inverse,cascade属性
		举例说明: 一对多关系的两张表:boy.girl(一个男孩可以多个女朋友) boy表结构 Field Type ------ ----------- name varcha ... 
- 【Java EE 学习 45】【Hibernate学习第二天】【对象的三种状态】【一对多关系的操作】
		一.对象的三种状态. 1.对象有三种状态:持久化状态.临时状态.脱管状态(游离状态) 2.Session的特定方法能使得一个对象从一个状态转换到另外一个状态. 3.三种状态的说明 (1)临时状态:临时 ... 
随机推荐
- mysql集群--基于centos7
			1 MySQL主从备份 主机:192.168.43.8 从机:192.168.43.6 条件:主机和从机都安装了mysql,开启了二进制日志 安装mysql (mysql 和 mysql-server ... 
- Java课程设计---学生信息管理系统需求分析及总体设计
			按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ... 
- ssh执行命令或者脚本里最好先加上 source /etc/profile
			记: 写一次shell脚本,发现总提示 找不到JAVA_HOME .明明已经配了环境变量,并且java -version也已经能输出信息,但就是提示. 后来在 脚本中加入第一句代码 source /e ... 
- ROS入门介绍
			1.ROS版本介绍 ROS版本:(已经推出数十个版本) 2013 ------> Hydro 2014 ------> Indigo (对应Ubuntu14.04) (现在已经基本废弃) ... 
- Java中ArrayList和LinkedList的异同
			一:ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,ArrayList实现了长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元 ... 
- Go代码规范梳理
			Go代码规范(Code Review) 总结几个开发过程中经常会犯的代码规范错误 参考链接:https://learnku.com/go/wikis/48375 注释语句 // Request 表示运 ... 
- Spring注解简析
			JAVA 元注解 @Documented @Inherited @Retention @Target @Repeatable @Native 在java.lang.annotation包下,除了@Na ... 
- python+pytest接口自动化(5)-发送post请求
			简介 在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递. 且协议中并没有规定post请求的请求数据必须使用什么样的编 ... 
- Bugku CTF_web4
			1.打开网页,得到信息如下 2.打开hackbar,在body里传入post参数. 3.得到flag如下 4.主要考察post传参,和简单的php代码审计. 
- 矩池云上编译安装dlib库
			方法一(简单) 矩池云上的k80因为内存问题,请用其他版本的GPU去进行编译,保存环境后再在k80上用. 准备工作 下载dlib的源文件 进入python的官网,点击PyPi选项,搜索dilb,再点击 ... 
