我一直用Google搜索,直到我脸色发青,找不到答案。如何配置MyBatis以返回列表地图?
即
HashMap<String, List<Foo>>
例如,如果我的查询返回了所有客户的所有订单,我想让它返回一个包含客户ID键入的订单列表的地图。
修改
我找到了一种方法来编写一个自定义的ResultHandler,但我宁愿让MyBatis为我做这件事,就像Hibernate对map或注释一样。
感谢。
答案 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>