2013-08-21 38 views
1

我有一個包含作爲屬性兩個其他對象,這樣的對象:加入不同的結果地圖的MyBatis

public class A { 
    private B b; 
    private C c; 
    .... 
} 

B和C已經與MyBatis的分離的文件的.xml其結果地圖。

我有一個返回A的連接查詢,我需要創建一個新的結果映射(在mybatis中),它包含B的resultMap和C的resultMap,但我不想重寫以前的resultMaps。

有沒有合併兩個resultMaps的方法?

回答

2

我有一個例子來創建一個包含其他resultMaps的resultMap。

<resultMap id="articleMap" type="com.xxx.tinybbs.entity.Article"> 
    <id column="ID" jdbcType="INTEGER" property="ID" /> 
    <result column="title" jdbcType="VARCHAR" property="title" /> 
    <result column="createTime" jdbcType="TIMESTAMP" property="createTime" /> 
    <result column="pid" jdbcType="INTEGER" property="pid" /> 
    <result column="authorId" jdbcType="INTEGER" property="authorId" /> 
    <result column="boardId" jdbcType="INTEGER" property="boardId" /> 
    <result column="sourceIp" jdbcType="VARCHAR" property="sourceIp" /> 
    <association property="board" javaType="com.xxx.tinybbs.entity.Board" column="boardId" resultMap="com.xxx.tinybbs.dao.BoardMapper.BaseResultMap"> 
    </association> 
</resultMap> 

<select id="getFullArticleInfo" parameterType="int" resultMap="articleMap"> 
    select article.*, board.* from article left join board on article.boardId = board.id where article.id =#{id}; 
</select> 

。注意,其他結果映射resultMap="com.xxx.tinybbs.dao.BoardMapper.BaseResultMap"進口,com.xxx.tinybbs.dao.BoardMapper是其他mapper.xml