看了这篇博客,我才理解了@Many 写的非常好!(4条消息) Mybatis注解@Results、@Result、@ResultMap_zhoushimiao1990的博客-CSDN博客_@result
先说下要达到的目的:项目类似于平时发布的动态,我要查出所有的动态信息,每条动态信息里面可以存放不同个数的图片地址,类似于嵌套,可以采用一对多的方式查询。
先上正确的代码
这个是动态信息的类,最后一个属性就是要用一对多,可以再存储好几条数据。
mapper类代码, column=“id”代表把id当作参数传给queryFileUrlInfo这个方法,通过@Many来传。property=“urls”是类中的字段名。
结果就是这样的,urls里面可以放好几条数据。
总结:@Many:就是每查询一遍sql之后,去查询@Many所对应的另外的一个接口方法,会根据它的column的字段,把这个字段当作参数带入到新的这个sql语句当中。最后拼接成一个结果。
中途遇到的错误:
1.@Many所对应的方法的返回值是List<String>,但是当时把属性url的类型也写成List了,所以就变成List套List查不出来,一直为null,改成String url 就可以了。
2.查询出来的结果集,每一条的id都为0,因为没写,只写了@Many内句话的话,因为它的字段也是id,但对应的属性是url,就不对了(我猜应该是这个问题)