mybatis元素类型为 “resultMap“ 的内容必须匹配 “(constructor?,id *,result*,association报错解决
1.前言
太久沒寫這種套娃式的sql語句了,導致今天一寫,直接給我整了個報錯。
原因其實蠻簡單的,mybatis的xml中的resultMap標簽規定了內標簽的順序,寫錯了就會直接解析不出來,從而報錯。就和sql語句一樣的,定義了自己的規則.
我先說說解決方式,我們再接著聊.
2.解決方式
解決:resultMap的中順序必須是
<resultMap>?<id></id>?<result />?......?<association />?.....?<collection/>?</resultMap>我們一層一層套娃的話,必須要按照這樣的規則來寫.
我的xml中這么寫,就一直在報這個錯誤.
改完后:
嚴格按照規則來即可.
3.總結
resultMap總結
3.1 id
映射數據表中主鍵。另外如果resultMap 多層嵌套中有多個id,并且名字相同的話,查詢的時候盡量給個別名會更好一些。
3.2 result
就是正常映射到pojo類的一個屬性。
3.3 resultType:
作用:將查詢結果按照sql列名pojo屬性名一致性映射到pojo中。
場合:常見一些明細記錄的展示,比如用戶購買商品明細,將關聯查詢信息全部展示在頁面時,此時可直接使用resultType將每一條記錄映射到pojo中,在前端頁面遍歷list(list中是pojo)即可。
3.4 resultMap:
使用association和collection完成一對一和一對多高級映射
3.5 association:
作用:將關聯查詢信息映射到一個pojo對象中。
場合:為了方便查詢關聯信息可以使用association將關聯訂單信息映射為用戶對象的pojo屬性中,比如:查詢訂單及關聯用戶信息。
使用resultType無法將查詢結果映射到pojo對象的pojo屬性中,根據對結果集查詢遍歷的需要選擇使用resultType還是resultMap。
3.6 collection:
作用:將關聯查詢信息映射到一個list集合中。
場合:為了方便查詢遍歷關聯信息可以使用collection將關聯信息映射到list集合中,比如:查詢用戶權限范圍模塊及模塊下的菜單,可使用collection將模塊映射到模塊list中,將菜單列表映射到模塊對象的菜單list屬性中,這樣的作的目的也是方便對查詢結果集進行遍歷查詢。
如果使用resultType無法將查詢結果映射到list集合中。
后語
我們一起加油吧
你好,我是博主寧在春:主頁
希望本篇文章能讓你感到有所收獲!!!
祝 我們:待別日相見時,都已有所成。
歡迎大家一起討論問題😁,躺了🛌
掘友可點點這👉掘金 | 寧在春
總結
以上是生活随笔為你收集整理的mybatis元素类型为 “resultMap“ 的内容必须匹配 “(constructor?,id *,result*,association报错解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你学废了 Mybatis 动态批量修改吗
- 下一篇: 你了解SpringBoot启动时API相