根据项目实战深度理解Mybatis@Results、@Result,@Many一对多的关系

看了这篇博客,我才理解了@Many 写的非常好!(4条消息) Mybatis注解@Results、@Result、@ResultMap_zhoushimiao1990的博客-CSDN博客_@result

先说下要达到的目的:项目类似于平时发布的动态,我要查出所有的动态信息,每条动态信息里面可以存放不同个数的图片地址,类似于嵌套,可以采用一对多的方式查询。

先上正确的代码

这个是动态信息的类,最后一个属性就是要用一对多,可以再存储好几条数据。

根据项目实战深度理解Mybatis@Results、@Result,@Many一对多的关系

 

 mapper类代码, column=“id”代表把id当作参数传给queryFileUrlInfo这个方法,通过@Many来传。property=“urls”是类中的字段名。

根据项目实战深度理解Mybatis@Results、@Result,@Many一对多的关系

 

 结果就是这样的,urls里面可以放好几条数据。

根据项目实战深度理解Mybatis@Results、@Result,@Many一对多的关系

 

 总结:@Many:就是每查询一遍sql之后,去查询@Many所对应的另外的一个接口方法,会根据它的column的字段,把这个字段当作参数带入到新的这个sql语句当中。最后拼接成一个结果。

中途遇到的错误:

1.@Many所对应的方法的返回值是List<String>,但是当时把属性url的类型也写成List了,所以就变成List套List查不出来,一直为null,改成String url 就可以了。

2.查询出来的结果集,每一条的id都为0,因为没写根据项目实战深度理解Mybatis@Results、@Result,@Many一对多的关系,只写了@Many内句话的话,因为它的字段也是id,但对应的属性是url,就不对了(我猜应该是这个问题)

 

上一篇:apidoc快速生成接口文档


下一篇:异或的三道题目整理:Leetcode1738:找出第 K 大的异或坐标值