2014-02-05 5 views
3

У меня есть Googled это, пока я не был синим в лицо и не мог найти ответ. Как настроить MyBatis для возврата Карты списков?MyBatis: Как вернуть карту списков?

т.е.

HashMap<String, List<Foo>> 

К примеру, если у меня был запрос, возвращаемой все заказы для всех моих клиентов, и я хотел, чтобы получить его, чтобы вернуть карту, содержащую список заказов индексированы по идентификатору клиента ,

EDIT

Я нашел способ сделать это, написав собственный ResultHandler, но предпочел бы MyBatis сделать это для меня так же, как Hibernate делает либо с отображением или аннотации.

Спасибо.

+0

Вы уверены, что вы не хотите списка Карта (ы)? –

+0

Совершенно очевидно, что я просто хочу, чтобы карта с одним столбцом, т.е. идентификатором клиента, как ключом, и список другого объекта, т.е. объекты заказа как значение. – AfterWorkGuinness

+0

Мне просто интересно, как вы создадите свой хэш в sql. Должно быть легко, но для меня это выглядит довольно сложно. Ну, сначала я думаю, что у вас есть объект myBatis, который должен быть создан каркасом. И тогда я предпочел бы попробовать список «отображенных» объектов, например. которые могут быть легко созданы. Мое мнение - я предпочитаю список бобов. –

ответ

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> 
Смежные вопросы