MyBatis:如何返回列表地图?

时间:2014-02-05 15:36:59

标签: java mybatis

我一直用Google搜索,直到我脸色发青,找不到答案。如何配置MyBatis以返回列表地图?

HashMap<String, List<Foo>>

例如,如果我的查询返回了所有客户的所有订单,我想让它返回一个包含客户ID键入的订单列表的地图。

修改

我找到了一种方法来编写一个自定义的ResultHandler,但我宁愿让MyBatis为我做这件事,就像Hibernate对map或注释一样。

感谢。

1 个答案:

答案 0 :(得分:1)

我发现最简单的事情是创建一个新的POJO并将id和对象列表放在那里。

<强> StringFoo.java

public class StringFoo {
    String name;
    List<Foo> foos;
}

<强> Mapper.java

List<StringFoo> findFoo(@Param("id") Long id);

<强> Mapper.xml

<resultMap id="FooResultMap" type="com.package.StringFoo">
    <result property="name" column="name"/>
    <collection property="foo" resultMap="FooMapORJavaType"/>
</resultMap>
<select id="findFoo" resultMap="FooResultMap"></select>