2014-01-15 2 views
0

Вот мой код:Ibatis/MyBatis - Получить карту результата вместо списка с пользовательскими ключами и значениями

<resultMap class="<custom_class>" id="maptoCustomClass"> 
     <result property="idModifiedBy" column="col2" /> 
    <result property="assignedTeamName" column="col3" /> 
     </resultMap> 

     <resultMap class="java.util.HashMap" id="resultMapId"> 
     <result property="key" column="col1"/> 
    <result property="value" resultMap="file.maptoCustomClass"/> 
     </resultMap> 

     <select id="fetchTaskTeamAndUser" parameterClass="java.util.HashMap" resultMap="resultMapId"> 
     SELECT col1, col2, col3 
     FROM schema_name.table_name 
     </select> 

Это не работает и бросать «Слишком много строк возвращается» ошибка. Я понимаю, почему.

Мой вопрос в том, как я могу получить результаты в виде пары KEY и VALUE в HashMap?

например. Я должен получить один ключ HashMap с ключом как значение col1 и значения как объект, который содержит значения col2 и col3.

+1

ключ, значение не является собственностью. Свойство mean get/set/is ... – CycDemo

+0

Спасибо @CycDemo. Есть ли способ, которым я могу ввести эти значения в Map? – Sid

ответ

1

Try как:

Map<String,Long> mCountMap = getSqlMapClientTemplate().queryForMap("mydata", "", "key", "value"); 

<resultMap id="hashMapResult" class="java.util.HashMap"> 
    <result property="key" column="col_1"/> 
    <result property="value" column="col_2"/> 
</resultMap> 

<select id="mydata" resultMap="hashMapResult"> 
    select col_1, col_2 from sometable 
</select> 
Смежные вопросы