珠海做网站制作,网站做选择题怎么快速选择,电脑网页打不开怎么回事,app在线生成平台 免费问题描述
当使用Mybatis 进行Page分页#xff0c;再使用Page map 作为接受参数。此时尝试修改map则会报错。 报错为
java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified解决方案
使用新的数组#xff0c;使用反射#xff0c;构建工具…问题描述
当使用Mybatis 进行Page分页再使用Page map 作为接受参数。此时尝试修改map则会报错。 报错为
java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified解决方案
使用新的数组使用反射构建工具类自动将原值拷贝到对应的类上完成转换。直接上代码
/*** 用于解决mybatis 查询Listmap后无法修改的问题* author hh* date 2023/8/3*/
public class MybatisMapUpdateUtils {public static void main(String[] args) throws Exception {MapString,Object map new HashMap();map.put(userName,吉吉强);ListMapString,Objectlist new ArrayList();list.add(map);ListUserDto object (ListUserDto) getObject(list, UserDto.class);System.out.println(object);}public static Object getObject(ListMapString,Objectmap, Class className) throws Exception {ListObject arrayList new ArrayList();for (MapString,Object vo: map){Constructor constructors className.getConstructor();Object instance constructors.newInstance();for (String key:vo.keySet()){System.out.println(key key and value vo.get(key));try {Field field className.getDeclaredField(key);field.setAccessible(true);field.set(instance,vo.get(key));} catch (Exception e){System.out.println(field not found);}}arrayList.add(instance);}return arrayList;}}测试打印后结果正常
key userName and value 吉吉强
[UserDto(userName吉吉强)]进程已结束,退出代码0