在做 mybatis 一對多查詢的時候, resultMap 里面用到了集合標簽 collection ,后來發現 當該條數據沒有子集的時候, collection 會自動創建一個屬性都是null的對象。
比如:
Teacher —對應多個— Student
那么Teacher 里面應該有個 List<Student> studentList 對象,但是如果有一個Teacher里面沒有Student的話,用collection會返回一個 屬性都是null 的Student對象放在List里面。
解決辦法:
在collection 標簽上 寫上 notNullColumn 屬性 ,notNullColumn ="id,name" ,意思是只要id,name 有一個為null 則 就不創建這個子對象 。官方文檔如下:
notNullColumn | 默認情況下,在至少一個被映射到屬性的列不為空時,子對象才會被創建。 你可以在這個屬性上指定非空的列來改變默認行為, 指定后,Mybatis 將只在這些列非空時才創建一個子對象。可以使用逗號分隔來指定多個列。默認值:未設置(unset)。 |
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html 點擊鏈接查看詳情