1.只显示地址,不显示内容:

结果显示

    @Testpublic void searchUserRole(){List<User>list=userDao.searchUserRole();for(User u:list){System.out.println(u);System.out.println("\t\t"+u.getRoles());}}

查看代码发现没有问题,难道是实体类的原因?

后来发现实体类少了重写ToString()方法:

 @Overridepublic String toString() {return "Role{" +"id=" + id +", name='" + name + '\'' +", desc='" + desc + '\'' +", users=" + users +'}';}

但是还是有问题,如下,名字重复:

原因在于user表和role表有字段名重复:

<resultMap id="userRoleMap" type="com.aaa.entity.User"><!--主键字段对应的属性;property:实体类属性;column:数据库列名--><id property="id" column="id"></id><!--非主键字段--><result property="name" column="name"></result><result property="birth" column="birth"></result><result property="gender" column="gender"></result><result property="address" column="address"></result><!--建立了一对多关系之后,需要继续--><collection property="roles" ofType="role"><id property="id" column="id"></id><result property="name" column="name"></result><result property="desc" column="desc"></result></collection></resultMap>

原来的sql语句:

SELECT u.*,r.*
FROM user u left JOIN user_role ur on u.id=ur.uid
left JOIN role r on ur.rid=r.id

使用别名之后:

 <select id="searchUserRole" resultMap="userRoleMap">SELECT u.*,r.id rid,r.name rname,r.descFROM user u left JOIN user_role ur on u.id=ur.uidleft JOIN role r on ur.rid=r.id</select>

再看执行效果:

最终结果正常!

mybatis多对多的问题汇总相关推荐

  1. MyBatis多对多关联查询示例——MyBatis学习笔记之十八

    MyBatis系列的上一篇博客发表时,笑笑还没有出生.转眼间八个月过去了,他已经是个大宝宝了.这么长时间未更新MyBatis系列的博客,想来真是罪过.不过有了宝宝之后,的确会分散自己很大一部分精力. ...

  2. Mybatis多对多,复杂增删改查(特殊需求循环插入,分组查询)

    2021.8.31 从25号开始练习复杂的mybatis多对多,从设计数据库思路到实现需求功能转移到实体项目中 1.之前很少看过字符转换的详细内容从今往后会注意字符串转换此项目为转数组(date)实体 ...

  3. 445、Java框架99 -【MyBatis - 多对多】 2020.12.23

    目录 0.定义多对多关系 1.表结构 2.导入数据 3.实体类 4.映射文件 5.修改mybatis-config.xml 6.查询操作 7.建立关系 8.删除关系 9.修改关系 10.参考链接 0. ...

  4. mybatis中关于日期类型问题汇总

    mybatis中关于日期类型问题汇总 mybatis中jdbcType属性 我们平时开发时候,编写三层架构值dao对应的mapper文件,编写java类映射数据库字段,有个字段jdbcType,很少人 ...

  5. mybatis多对一处理两种处理方式

    1.Teacher.java public class Teacher {private int id;private String name;//省略getter.setter及toString方法 ...

  6. mybatis 多对多 处理

    2019独角兽企业重金招聘Python工程师标准>>> 下面的例子让新手看不错.可以改进的一点是 1.不必建立 关联对象实体,可以用map传递两个id进去 2.文章的resultMa ...

  7. 三.Mybatis 多对一与一对多

      Profess.java   一方 package com.pojo; //一对多 一方import java.util.List;public class Profess {int proid; ...

  8. MyBatis多对多关系映射

    1.使用的数据脚本为: DROP DATABASE IF EXISTS mybatisdb ; CREATE DATABASE mybatisdb CHARACTER SET UTF8 ; USE m ...

  9. mybatis多对一映射association详解

    简单映射(一对一) 多对一映射 方式1:按照查询嵌套处理 方式2:按照结果嵌套处理 简单映射(一对一) mybatis结果集映射ResultMap 多对一映射 我们有2个类,一个班级类ClassRoo ...

最新文章

  1. 针对JavaScript的常用事件、对象捕获和使用技巧
  2. 函数计算新功能-----支持C#函数
  3. Hibernate5-唯一查询和聚合查询
  4. Beta 冲刺 (5/7)
  5. UE4 集成讯飞听写插件
  6. 计算机巧用剪纸做画册教案,大班绘画剪纸制作的教案总结
  7. C++基础知识点整理
  8. SUSE Linux启动过程执行脚本顺序
  9. 【pytorch】.detach() .detach_() 和 .data==>用于切断反向传播
  10. 30 个用于杂志网站的 WordPress 主题
  11. PSD分层电商促销模板|季末大促上演
  12. 服务器指示灯详情 中兴,IBM服务器故障_指示灯介绍
  13. create session 参数介绍
  14. 猴子都能懂的数据库范式详解
  15. 非负矩阵分解小白入门
  16. 《特征工程入门与实践》读书笔记一
  17. mysql可以存储.wav文件吗_手机迅雷下载的视频文件存储路径位置、iPad可以下载迅雷...
  18. 无人机测量技术在房地一体项目中的应用
  19. g4560和二代i5_两款处理器奔腾G4560和i5-7400差距?
  20. MongoDB数据库设计(一)

热门文章

  1. keycloak集群化的思考
  2. 看动画学算法之:排序-选择排序
  3. Promise第三篇:async和await关键字
  4. java 返回值 泛型 继承_java泛型类继承问题?
  5. js计算器代码加减乘除_如何用jQuery做一个简易版计算器
  6. Windows使用msi安装MySQL安装教程
  7. 详解DNS正向解析实验(有图有实验)
  8. 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
  9. 学报格式和论文格式一样吗_学报投稿格式有哪些
  10. linux硬件 软件raid,Linux下软件RAID的实现