JPA 如何修改 联表查询返回的Map

记录解决两个问题:

1、JPA 中联表查询会返回一个不可修改的集合Map 如果要修改就会报 :A TupleBackedMap cannot be modified.

解决方法:

不直接修改这个 Map。如果你需要对 Map 进行修改操作,你可以创建一个新的 Map,然后将原 Map 的内容复制到新 Map 中。

 第二个问题就是如何创建一个空的Page<Map> 把数据拷贝进去了

2、如何创建一个空 Page<Map> 对象 

参数描述:   

	// 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());

创建新对象并赋值伪代码如下:

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());

相关推荐

  1. JPA 如何修改 查询返回Map

    2024-05-02 18:54:04       38 阅读
  2. MYSQL-简单查询示例

    2024-05-02 18:54:04       49 阅读
  3. mysql基本知识点——JOIN查询

    2024-05-02 18:54:04       45 阅读
  4. Spring Data JPA 提供默认查询方法

    2024-05-02 18:54:04       52 阅读
  5. nbsaas-boot适配jpa查询设计

    2024-05-02 18:54:04       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-02 18:54:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-02 18:54:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-02 18:54:04       87 阅读
  4. Python语言-面向对象

    2024-05-02 18:54:04       96 阅读

热门阅读

  1. 4月26日划分字母区间+合并区间

    2024-05-02 18:54:04       41 阅读
  2. Element-UI快速入门

    2024-05-02 18:54:04       42 阅读
  3. 两分钟“手撕”Object类

    2024-05-02 18:54:04       38 阅读
  4. Docker Compose部署项目flask+mysql + redis

    2024-05-02 18:54:04       32 阅读
  5. 爬虫学习--2.urllib 库

    2024-05-02 18:54:04       27 阅读