mybatis使用内部类处理一对多类型数据2

简介: mybatis使用内部类处理一对多类型数据2

当一对多关系时,需要把多的那个数据传入到一个

例如: 需要获取用户id和模板id,一个租户id 可以创建多个模板,所以租户和模板是一对多的关系,为了减少创建实体类,使用内部类存储模板id和模板名称,然后存储到list集合中。

实体类

@Data
public class TenantAndTemplateId {
    private String tenantId;
    private String tenantName;
    private List<TemplateId> templateIds;
//注意需要用static修饰
@Data
static class TemplateId {
    private String templateId;
    private String templateName;
}

sql语句 租户表为主表,左连接模板表,此时会有查询到同一个租户有多个模板,我们将多的模板信息,封装到 List templateIds 这个集合中;

select template_id,
   template_name,
   tenant.tenant_id,
   tenant_name
 from tenant
     left join template on tenant.tenant_id = template.tenant_id

使用mybatis 的xml 整理映射关系是,我们使用 collection 标签映射内部类 ,propertyd对应参数 templateIds,javaType 对应 templateIds参数的类型为list, 此处需要注意 ofType 对应的是TenantAndTemplateId 实体类的路径,后面使用$连接内部类名称即可实现内部类关系的映射


测试接口返回结果

注意点01:resultType后面的内部类用$符号连接;02:内部类必须有无参构造函数;03:内部类必须为静态类有static修饰;

相关文章
|
6天前
|
Java 数据库连接 mybatis
Mybatis Plus保存数据返回主键id
Mybatis Plus保存数据返回主键id
36 1
|
6天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
29 1
|
6天前
|
SQL 缓存 Java
mybatis 一对多查询
mybatis 一对多查询
24 0
|
6天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
20 1
|
6天前
|
Java 数据库连接 mybatis
mybatis的一对多
mybatis的一对多
|
6天前
|
SQL 前端开发 Java
通过使用Mybatis插件来实现数据的分页功能
通过使用Mybatis插件来实现数据的分页功能
|
6天前
|
XML Java 数据库连接
mybatis批量数据分页查询
mybatis批量数据分页查询
|
6天前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
24 0
|
6天前
|
XML SQL Java
mybatis的一对多,多对一,以及多对对的配置和使用
mybatis的一对多,多对一,以及多对对的配置和使用
18 2
|
6天前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1