A TupleBackedMap cannot be modifed

问题原因:使用JPA 自己写SQL 返回的数据集合不能被更改

灵感来源:https://my.oschina.net/u/4339087/blog/3306199

解决方法:新建一个集合把过滤好的数据直接放入新集合
代码如下:
repository 层:
    @Query(value = "select * from aaa", nativeQuery = true)
    List<Map<String,Object>> queryAAA();
serviceImpl层 方法1
List<Map<String,Object>> lists =  xxxRepository.queryAAA();
        for (Map<String, Object> map : lists) {
            map.entrySet().removeIf(m -> {
                System.out.println(m.getKey());
                Boolean flag = "RO".equals(m.getKey());
                return flag;
            });
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                System.out.println("Key:" + entry.getKey() + "\nValue:" + entry.getValue());
            }
        }
执行该方法,Map 中的数据不能过滤但是也不报错,原因就是因为JPA返回的数据不能被更改
serviceImpl层 方法2
List<Map<String,Object>> lists =  xxxRepository.queryAAA();
        for (Map<String, Object> map : lists) {
            map.entrySet().remove("RO") //这行报错
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                System.out.println("Key:" + entry.getKey() + "\nValue:" + entry.getValue());
            }
        }

报错如下:

java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified.
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容