Я хочу возвращаемый результат оператора выбора ниже, чтобы быть Map<String, Profile>:
MyBatis - Возвращение в HashMap
<select id="getLatestProfiles" parameterType="string" resultMap="descProfileMap">
select ml.layerdescription, p1.*
from (select max(profile_id) as profile_id
from SyncProfiles
group by map_layer_id) p2
inner join SyncProfiles p1 on p1.profile_id = p2.profile_id
inner join maplayers ml on ml.LAYERID = p1.MAP_LAYER_ID
where ml.maxsite = #{site}
</select>
Я видел этот post, которая отображает строку для пользовательского класса, но ключ был частью обычая класс. В моем запрошенном выше вопросе поле layerdescription не является частью класса Profile, так как я хочу, чтобы класс Profile строго представлял таблицу syncprofiles, а поле layerdescription - в другой таблице.
Мой интерфейс выглядит следующим образом:
public Map<String, Profile> getLatestProfiles(final String site);
Как следует descProfileMap определить? Я хочу сделать что-то вроде:
<resultMap id="descProfileMap" type="java.util.HashMap">
<id property="key" column="layerdescription" />
<result property="value" javaType="Profile"/>
</resultMap>
Но это явно неправильно. Спасибо за вашу помощь!