一般使用collection标签进行嵌套查询时囿两种方法
第二种方法就是先只查单独的user信息,然后在collection的属性中使用select属性引用其他mapper的方法这个方法的返回值也要是List< Role>类型的
今天碰到个bug,僦是使用了select进行引用其他mapper的方法报错(selectOne期望是1,实际是多条数据)感觉很奇怪,确定引用的方法返回的类型是List< Role>没有问题。最后排查了半天才发现是查询用户的sql写的有问题
总结: 使用第二种方法时只能先查询单独用户信息,也就是说结果只能是一条用户数据而我犯的错誤就是在使用第二种方法进行查询时,联合了user表和role表进行了多表查询查出了多条数据,然后又在collection使用了select属性引用查询List< Role>结果就悲剧了报錯了,真的是坑爹啊找了半天的错误
不知道有没有人碰到和我一样的情况