有兩種方法處理這種問題:
1、關聯的嵌套查詢
2、關聯的嵌套結果
網上關於這兩個方法的詳細使用方法和示例有很多,讀者可自行上網搜索,推薦文檔,在這裏就不詳細講解。
在這裏我主要是講一下第一種方法中使用時注意的一個問題:
示例:(引用來自推薦的文章裏)
<resultMap id="blogResult" type="Blog"> <association property="author" column="author_id" javaType="Author" select="selectAuthor"/> </resultMap> <select id="selectBlog" resultMap="blogResult"> SELECT * FROM BLOG WHERE ID = #{id} </select> <select id="selectAuthor" resultType="Author"> SELECT * FROM AUTHOR WHERE ID = #{id} </select>
以上示例中背景爲紅色的部分 ID=#{id}中id應該是數據庫表格中查詢出來的列的名稱還是Author對象的屬性名稱呢?起初我對於這個問題也是不知道,後來經過試驗,id選填列名稱和Author對象id的屬性名稱都行。出現這樣的結果,也不知道是我的程序壞了,還是真的兩個名稱都行。因爲本人對mybatis理解較爲淺顯,如果有路過的大神知道是我的程序錯了或者內部原因,歡迎賜教。