2013-04-03 3 views
0

Использование MyBatis в маршруте Camel для выбора пар ключ/значение из таблицы базы данных У меня возникла следующая проблема.Маршрут верблюда с MyBatis поставляет ArrayList из HashMaps вместо HashMap

Мой путь (как часть обогатителя контента):

from("direct:resource") 
    .setBody().constant(123) 
    .to("mybatis:selectParameters?statementType=SelectList") 
    ...; 

Mapper:

<select id="selectParameters" parameterType="int" resultType="java.util.HashMap"> 
    SELECT 
     KEY 
    ,VALUE 
    FROM 
     TABLE 
    WHERE 
     ID=#{id} 
</select> 

Все отлично работает за исключением того, что тело содержит ArrayList из HashMaps (по одному для каждого ключа/пара значений) вместо одной HashMap с парами nk/v.

Любая помощь будет принята с благодарностью

ответ

0

Я предполагаю, что вы должны использовать statementType = SelectOne, как вы только выбрать одну строку в запросе SQL. Поскольку вы используете SelectList, список всегда возвращается, даже если из набора результатов SQL имеется только одна строка.

Вы можете увидеть, какие типы заявление можно здесь: http://camel.apache.org/mybatis

И, конечно, обратитесь к документации MyBatis для получения более подробной информации об использовании MyBatis и т.д.

+0

Вероятно, где условие missleading: я выбираю п строк (п > 1), поэтому SelectList должен быть правильным. Я не совсем уверен, что использование хэш-карты возможно в mybatis способом, которым я пытаюсь. У меня есть список с 4 списками, каждый из которых имеет HashMap с 1 парой ключ/значение. Он работает, но он чувствует себя очень неправильно. – GotoDengo