【问题标题】:Join different result map with mybatis用mybatis加入不同的结果图
【发布时间】:2013-08-21 13:22:51
【问题描述】:

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

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

B 和 C 已经用 mybatis 将它们的结果映射在单独的文件 .xml 中。

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

有没有办法合并两个resultMaps?

【问题讨论】:

    标签: java mybatis


    【解决方案1】:

    我有一个示例来创建一个包含其他 resultMapsresultMap

    <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>
    

    注意,导入其他resultMapresultMap="com.xxx.tinybbs.dao.BoardMapper.BaseResultMap"com.xxx.tinybbs.dao.BoardMapper是其他mapper.xml的namespace

    【讨论】:

    • 我需要像这样在一个中插入 2 个 resultMap:
    • &lt;association property="second" javaType="com.xxx.tinybbs.entity.Second" column="boardId" resultMap="com.xxx.tinybbs.dao.SecondMapper.BaseResultMap"&gt;,同第一个resultMap
    • 我是这样做的: 这将返回查询的最后一行,我需要所有.你能帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多