300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JpA使用自定义类接收数据库返回的结果集

JpA使用自定义类接收数据库返回的结果集

时间:2021-11-12 07:30:05

相关推荐

JpA使用自定义类接收数据库返回的结果集

个人资源与分享网站:/

1.自定义类

@Data

public class ContractAttachDto {

private String contractNo;

private String houseBillNo;

private String fileName;

private String houseName;

private List<String> url=new ArrayList<>();

}

2.dao接口

@Query(value="SELECT h.contract_no,s.file_name,h.house_name from system_sys_attachment s,hb_contract_out h where h.id=s.src_bill_no and not h.contract_no like '%PRE%' and h.contract_end_type is null and s.src_type='HB_CONTRACT_OUT'",nativeQuery=true)

List<Object[]> findAllByAttact();

3.控制器

@ApiOperation(value="查询所有的线下出房合同")

@GetMapping("findAllHbContractOut")

public ErrorObject findAllHbContractOut() {

ErrorObject error=new ErrorObject();

Map<String, ContractAttachDto> map=new HashMap<>();

List<ContractAttachDto> dtoList=new ArrayList<ContractAttachDto>();

List<ContractAttachDto> list2=new ArrayList<ContractAttachDto>();

List<Object[]> objectList=hbContractOutService.findAllByAttact();

for (Object[] objects : objectList) {

ContractAttachDto dto=new ContractAttachDto();

dto.setContractNo(objects[0]+"");

dto.setHouseBillNo(objects[1]+"");

dto.setFileName(objects[2]+"");

dto.setHouseName(objects[3]+"");

dtoList.add(dto);

}

for (ContractAttachDto dto : dtoList) {

if(map.containsKey(dto.getContractNo())) {

List<String> urls=map.get(dto.getContractNo()).getUrl();

urls.add("/upload/viewImg/"+dto.getFileName());

dto.setUrl(urls);

map.put(dto.getContractNo(), dto);

}else {

List<String> urls=new ArrayList<>();

urls.add("/upload/viewImg/"+dto.getFileName());

dto.setUrl(urls);

map.put(dto.getContractNo(), dto);

}

}

for(Map.Entry<String, ContractAttachDto> entry:map.entrySet()) {

list2.add(entry.getValue());

}

error.setMap(UtilPublic.toModelMap(list2));

return error;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。