使用mybatis加入不同的结果图

时间:2013-08-21 13:22:51

标签: java jsf-2 mybatis

我有一个对象包含其他两个对象作为属性,如下所示:

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

B和C已将结果映射分离为.xml与mybatis的文件。

我有一个返回A的连接查询,我需要创建一个新的结果图(在mybatis中),它包含B的resultMap和C的resultMap,但我不想重写之前的resultMaps。

有没有办法合并两个resultMaps?

1 个答案:

答案 0 :(得分: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 resultMap="com.xxx.tinybbs.dao.BoardMapper.BaseResultMap"com.xxx.tinybbs.dao.BoardMapper是其他mapper.xml的namespace