前提・実現したいこと
SpringBootでmapにDBから取得した値を格納したいのですが、
コンパイル時にエラーになります。
DBから値の取得方法はControllerクラスからサービスクラスを呼び出して、DBから値を取得しています。
ご教授いただければと思います。
発生している問題・エラーメッセージ
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String
該当のソースコード
java
1package com.kproject01.controller; 2 3import java.util.Collections; 4import java.util.LinkedHashMap; 5import java.util.Map; 6 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.stereotype.Controller; 9import org.springframework.web.bind.annotation.GetMapping; 10import org.springframework.web.servlet.ModelAndView; 11import com.kproject01.service.UserEditService; 12 13/** 14 * ユーザ編集ページのコントローラー 15 * @author takahiro 16 * 17 */ 18@Controller 19public class UserEditController { 20 21 @Autowired 22 UserEditService userEditService; 23 24 /** 25 * 初期表示 26 * @param mav 27 * @return mav 28 */ 29 @GetMapping(path = "/user-edit") 30 public ModelAndView useEdit(ModelAndView mav) { 31 //userEditService.userEditUserSelect(); 32 Map<Integer, String> getSelectedUser = 33 Collections.unmodifiableMap(new LinkedHashMap<Integer, String>() { 34 private static final long serialVersionUID = 1L; 35 Map<Integer, String> userList = userEditService.userEditUserSelect(); 36 { 37 for(Map.Entry<Integer, String>entry :userList.entrySet()){ 38 System.out.println(entry.getKey()); 39 System.out.println(entry.getValue()); 40 put(entry.getKey(), entry.getValue()); 41 } 42 } 43 }); 44 mav.setViewName("user-edit"); 45 return mav; 46 } 47} 48
xml
1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5<mapper namespace="com.kproject01.mapper.UserEditMapper"> 6 <select id="userEditUserSelect" resultType="map"> 7 select 8 user_id, 9 first_nm 10 from 11 m_user 12 where 13 delete_flg = 0 14 </select> 15</mapper>
java
1package com.kproject01.mapper; 2 3import java.util.List; 4import java.util.Map; 5 6import org.apache.ibatis.annotations.MapKey; 7 8import com.kproject01.entity.UserEditUserSelect; 9import com.kproject01.entity.UserTop; 10 11/** 12 * ユーザ編集ページ 13 * @author takahiro 14 * 15 */ 16public interface UserEditMapper { 17 18 //コンボボックスに格納するユーザID、ユーザ名を取得 19 @MapKey("userId") 20 Map<Integer, String> userEditUserSelect(); 21} 22
補足情報(FW/ツールのバージョンなど)
xmlのresultTypeをhashmapにしたりエンティティにしたりしたのですが、うまくいかず
型が違うというのはなんとなく分かったのですが。。。。
java8
SpringBoot8
回答4件
あなたの回答
tips
プレビュー