MyBatis初级实战之六:一对多关联查询

本文介绍了MyBatis中一对多关联查询的两种方法:联表查询和嵌套查询。联表查询通过resultMap的collection子节点处理,将日志记录映射到用户对象的logs集合。而嵌套查询则利用association子节点和子查询,分别处理用户和日志。文中给出了详细的操作示例,包括SQL、resultMap配置以及对应的Service和Controller实现。
摘要由CSDN通过智能技术生成

关于多表关联查询的两种方式

  • 多表关联查询的实现有联表和嵌套查询两种,它们的差异在Mybatis中体现在resultMap的定义上:
  1. 联表时,resultMap内使用collection子节点,将联表查询的结果映射到关联对象集合;

  2. 嵌套时,resultMap内使用association子节点,association的select属性触发一次新的查询;

  • 上述两种方式都能成功得到查询结果,接下来逐一尝试;

联表查询

  1. 本篇继续使用上一篇中创建的子工程relatedoperation;

  2. 实体类UserWithLogs.java如下,可见成员变量logs是用来保存该用户所有日志的集合:

package com.bolingcavalry.relatedoperation.entity;

import io.swagger.annotations.ApiModel;

import io.swagger.annotations.ApiModelProperty;

import lombok.Data;

import lombok.NoArgsConstructor;

import java.util.List;

@Data

@NoArgsConstructor

@ApiModel(description = “用户实体类(含行为日志集合)”)

public class UserWithLogs {

@ApiModelProperty(value = “用户ID”)

private Integer id;

@ApiModelProperty(value = “用户名”, required = true)

private String name;

@ApiModelProperty(value = “用户地址”, required = false)

private Integer age;

@ApiModelProperty(value = “行为日志”, required = false)

private List logs;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值