记录开发中的一次神奇的bug(Mybatis的resultMap中collection结果集映射数量与数据库查询出的数量不一致的情况)

记录开发中的一次神奇的bug(Mybatis的resultMap中collection结果集映射数量与数据库查询出的数量不一致的情况)

情况是这样的:大A在商店下了个单,选了四种五毛钱的零食,每种都只买了一袋,钱付完了结果订单查询后显示它只买了一种五毛钱的零食,然而数据库中存的是他买了四种。

很明显,在SQL结果到Java的结果集映射过程出了问题,但是有些订单又是正常的,如果映射本身有问题,为啥有些订单正常呢?

我真的盯着SQL结果看了半个多小时。。。(结果真的太长了),差点放弃了,然后我发现了一个惊天的秘密

在这里插入图片描述

在这笔订单中,一共买了六种商品,但是前台只显示了五种;

我猜,因为这个类并没有id唯一标识且作为collection中的oftype,所以当orderGoodItem_quantity和orderGoodeitem_price列的数据重复时[即途中的3-1.5的数据]会被认为重复而不映射,所以这里只映射为了5中,因为3-1.5重复了一个。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章