記錄開發中的一次神奇的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重複了一個。

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