记录解决两个问题:
1、JPA 中联表查询会返回一个不可修改的集合Map 如果要修改就会报 :A TupleBackedMap cannot be modified.
解决方法:
不直接修改这个 Map。如果你需要对 Map 进行修改操作,你可以创建一个新的 Map,然后将原 Map 的内容复制到新 Map 中。
第二个问题就是如何创建一个空的Page<Map> 把数据拷贝进去了
2、如何创建一个空 Page<Map> 对象
参数描述: 文章来源:https://www.toymoban.com/news/detail-859605.html
// Pageable pageRequest = PageRequest.of(当前页码, 每页条数 );
Pageable pageRequest = PageRequest.of(recordDto.getPage(), recordDto.getPageSize() );
// Page<Map> pm = new PageImpl<>(对象列表, pageRequest , 总条数);
Page<Map> pm = new PageImpl<>(newList, pageRequest , findRecordList.getTotalElements());
创建新对象并赋值伪代码如下:文章来源地址https://www.toymoban.com/news/detail-859605.html
Pageable pageRequest = PageRequest.of(recordDto.getPage(), recordDto.getPageSize() );
Page<Map> findRecordList = recordRepository.findRecordList(recordDto.getName(), recordDto.getDateStart(), recordDto.getDateEnd(), pageRequest) ;
List<Map> newList =new ArrayList<Map>();
List<Map> list = findRecordList.getContent();
for (Map map : list) {
Map newMap1 = new HashMap(map);
//添加新的属性
newMap1.put("flag", 1);
}
Page<Map> pm = new PageImpl<>(newList, pageRequest , findRecordList.getTotalElements());
到了这里,关于JPA 如何修改 联表查询返回的Map的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!