模拟问题场景
在我们 向前端传递参数的时候,经常会出现用到VO类的情况
而VO这个扩展类,通常大部分的属性都和基类(对应数据库的真正实体类)有很多重复
这时候我们就可以直接通过继承来进行实现。
假如我们现在 有Article 和 User两个表 对应两个实体类,但是要创建一个VO类,内容包含了Article的所有属性 和 User的userName属性。如下图所示:
Article和User的实体类
![](https://img-blog.csdnimg.cn/img_convert/a0912b0ffac34fe3ac8d7931e6a94a02.png)
![](https://img-blog.csdnimg.cn/img_convert/90a276ec27b44377b5a28506bb0a16c2.png)
ArticleVO类
![](https://img-blog.csdnimg.cn/img_convert/335fb513c42e4e22930e5650639ef846.png)
MyBatis的接口和xml
![](https://img-blog.csdnimg.cn/img_convert/70487b0716a3491d912ffddc3c4b4774.png)
![](https://img-blog.csdnimg.cn/img_convert/b260fa732f0a4be1a838ea8b79098db8.png)
对接口进行测试:
![](https://img-blog.csdnimg.cn/img_convert/6585b7d309364e378451d46f0774e2ae.png)
出现问题
我们可以通过对接口测试的地方 看到,打印的内容并不是 将我们想要的所有信息都进行一个打印,而是只打印了一个 username这个属性!
定位问题
猜测原因:
1.查询数据库的内容 没有传递给ArticleVO
2.打印的问题
对Test类进行断点调试:
![](https://img-blog.csdnimg.cn/img_convert/c82088fa26184588934ac22f24bef941.png)
这时候 我们就可以判断是println的问题了
而实现print的输出实际的toString的内容,其实也就是lombok重写toString方法的时候,并没有写全
解决问题
这个时候我们已经知道是toString的问题,那我们就可以通过在这个VO类中重写toString的方式来解决这个问题。
![](https://img-blog.csdnimg.cn/img_convert/c777918a94e6406aa04e6ba84865fe8a.png)
![](https://img-blog.csdnimg.cn/img_convert/d56ce2c60c5340e1a15ac2d0b030e8be.png)
最终结果
![](https://img-blog.csdnimg.cn/img_convert/dbc6f9cd951f46e3a49dcb60879b36f8.png)