不需要list转page,jpa分页模糊查询+排序

该段代码展示了如何在Java后端通过Spring Data JPA实现分页查询,并将查询结果转换为StudentDTO对象。根据传入的名称、页码和大小,从数据库中获取包含特定名称的数据,同时处理排序和分页逻辑。查询结果经过映射转换,填充了年级名称等信息。
摘要由CSDN通过智能技术生成

. public Page getList(String name, int page, int size) {
String nameNew = name;
if (name == null){
nameNew = “”;
}
// Sort sort;
//if(“升序”.equals(onorunder)){
// sort = Sort.by(Sort.Direction.ASC, depend);
//}else if (“降序”.equals(onorunder)){
//sort = Sort.by(Sort.Direction.DESC, depend);
//}else{
// sort = Sort.by(Sort.Direction.DESC, depend);
// }
// Pageable pageable= PageRequest.of(page-1,size,sort);排序的话替换带你下面一行就好了
Pageable pageable=PageRequest.of(page<=0?0:page-1,size);
Page list = zhjQueryRepository.findAllByNameContaining(nameNew, pageable);
Page processFormDtol= list.map(processFormView -> {
StudentDTO processFormDto = new StudentDTO();
processFormDto.setId(String.valueOf(processFormView.getId()));
processFormDto.setGradeId(processFormView.getGradeId());
if(processFormView.getGradeId()!=null) {
Optional byId = gradeQueryRepository.findById(Long.parseLong(processFormView.getGradeId()));
Grade grade = byId.get();
processFormDto.setGradeName(grade.getGradeName());
}else {
processFormDto.setGradeName(null);
}
processFormDto.setBj(processFormView.getBj());
processFormDto.setName(processFormView.getName());
processFormDto.setRxsj(processFormView.getRxsj());
processFormDto.setXb(processFormView.getXb());
processFormDto.setXskh(processFormView.getXskh());
processFormDto.setZy(processFormView.getZy());
return processFormDto;
});
return processFormDtol;
}

Controller中的代码

   @GetMapping(value = "mohu", produces = { "application/json;charset=UTF-8"})
public ResponseCode<List<StudentDTO>> getlistlikename(String name,int page,int size){
    ResponseCode<List<StudentDTO>> responseCode = ResponseCode.sucess();
    responseCode.setDataInfo(zhjQueryService.getList(name,page,size));
   return responseCode;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值