Mybatis中的嵌套查询collection

qq_33570888 2019-10-31 12:08:41
一般使用collection标签进行嵌套查询时,有两种方法 比如有个user类,其中有个属性是List< Role>的集合 第一种方法是直接联合user表和role表多表查询,通过user的id会查询出多条数据,然后再用result封装将role信息封装到List< Role>中 第二种方法就是先只查单独的user信息,然后在collection的属性中使用select属性引用其他mapper的方法,这个方法的返回值也要是List< Role>类型的 今天碰到个bug,就是使用了select进行引用其他mapper的方法,报错(selectOne期望是1,实际是多条数据),感觉很奇怪,确定引用的方法返回的类型是List< Role>,没有问题。最后排查了半天才发现是查询用户的sql写的有问题 总结: 使用第二种方法时,只能先查询单独用户信息,也就是说结果只能是一条用户数据,而我犯的错误就是在使用第二种方法进行查询时,联合了user表和role表进行了多表查询,查出了多条数据,然后又在collection使用了select属性引用查询List< Role>,结果就悲剧了报错了,真的是坑爹啊,找了半天的错误 不知道有没有人碰到和我一样的情况
...全文
250 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2019-10-31
  • 打赏
  • 举报
回复
引用 1 楼 人生呐 的回复:
你说的两种方法我看懂了,但是出现问题的原因稍稍没看懂,您可以发图看看或者写个博客总结一下
就是写了一个bug...
  • 打赏
  • 举报
回复
你说的两种方法我看懂了,但是出现问题的原因稍稍没看懂,您可以发图看看或者写个博客总结一下

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧