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

Posted 努力开发的园宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据项目实战深度理解Mybatis@Results@Result,@Many一对多的关系相关的知识,希望对你有一定的参考价值。

看了这篇博客,我才理解了@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,就不对了(我猜应该是这个问题)

 

以上是关于根据项目实战深度理解Mybatis@Results@Result,@Many一对多的关系的主要内容,如果未能解决你的问题,请参考以下文章

深度有趣 - 人工智能实战合集

Google资深工程师深度讲解Go语言视频课程 Go爬虫实战课程

深度5万字好文:Python应用实战案例-带你深入理解Matplotlib

从零实现深度学习框架——RNN从理论到实战理论

深度学习:《PyTorch入门到项目实战》卷积神经网络:填充(padding)和步幅(stride)

PyTorch深度学习项目实战100例数据集