MyBatis resultMap中的多个ID - 性能优势?

时间:2016-10-17 08:48:22

标签: java mybatis

我正在使用MyBatis和Java。我可以在结果图中使用多个 ids 吗?

代码

我的结果Java类看起来像这样:

public class MyClass {
    private int id1;
    private int id2;
    private int total;

    // getters & setters
}

目前,我的MyBatis结果图如下所示:

<resultMap id="MyResult" type="MyClass">
    <result property="id1" column="id1" />
    <result property="id2" column="id2" />
    <result property="total" column="total" />
</resultMap>

此查询中使用此结果映射:

<select id="mySelect" resultMap="MyResult" parameterType="Map">
    select
        id1,
        id2,
        sum(total) as total
    from
        myTable
    group by
        id1,id2;
</select>

一切正常,但根据MyBatis文档,我应该使用 id 来获得一些效率。我想将MyBatis结果映射更改为:

<resultMap id="MyResult" type="MyClass">
    <id property="id1" column="id1" />
    <id property="id2" column="id2" />
    <result property="total" column="total" />
</resultMap>

问题

  1. 它会像以前一样工作吗?
  2. [稍后编辑]:测试过,似乎它没有搞砸分组和行,所以我会说它像以前一样工作,并且符合预期。

    1. 使用id?
    2. 会带来MyBatis的性能优势吗?

      我在哪里看,但找不到答案

      1. MyBatis documentation - 他们没有说或给出类似情况的例子。
      2. Composite Key - 但是,我没有复合键,我宁愿不修改MyClass来创建一个id1,id2的伪类ID。

1 个答案:

答案 0 :(得分:1)

是的,它将像以前一样工作,并且根据文档,它将获得一些效率,当您处理大量行时,您将会欣赏。无论如何,我的建议是使用第二个结果图,以便根据您的数据库结构在结果图的定义中最准确。