A TupleBackedMap cannot be modifed

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

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

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

报错如下:

java.lang.UnsupportedOperationException: A TupleBackedMap cannot be modified.

你可能感兴趣的:(A TupleBackedMap cannot be modifed)