测试对象关联查询遇到的疑惑
来源:3-2 ManyToOne对象关联查询
慕粉2344238606
2019-08-20 10:30:22
老师,您好!我在练习ManyToOne的代码时,代码如下
@Test
public void testManyToOne() {
SqlSession sqlSession = null;
System.out.println("======================");
try {
sqlSession = MyBatisUtils.openSession();
System.out.println("======================");
List<GoodsDetail> list = sqlSession.selectList("goodsDetail.selectManyToOne");//此处添加断点
for (GoodsDetail g : list) {
System.out.println(g.getGdPicUrl() + ":" + g.getGoods().getTiltle());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtils.closeSession(sqlSession);
}
}
我在上面加粗的那一行添加了一个断点,想看一下查询返回的list是什么样子,具体如下:
图中的goodsId为什么是null值呢?这块不是应该是从t_goods_detail的查询结果中获取goodsId后,传递给goods表的查询语句(goods.selectById)进行查询,然后goods表的查询结果传递给t_goods_detail的goods属性,最后得到查询结果。那么如果goodId的值为null,它又是怎么继续传递进行下一级查询呢?这块不太明白。
1回答
好帮手慕阿满
2019-08-20
同学你好,这里的goodId为null是正常的,list是一个集合,在集合中无法显示某一个goods的goodsId,建议同学在配置文件中,添加如下配置。
然后在输出语句处打断点查看是否有goodId。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题