测试对象关联查询遇到的疑惑

来源: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是什么样子,具体如下:

http://img.mukewang.com/climg/5d5b59640001aa2c07940297.jpg

图中的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,建议同学在配置文件中,添加如下配置。

http://img.mukewang.com/climg/5d5b702500016f5610740109.jpg

然后在输出语句处打断点查看是否有goodId。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

0 学习 · 8016 问题

查看课程