Java 根据Optional的值定义要调用的方法
是否可以以某种方式更改下面的代码,以便在没有提供Java 根据Optional的值定义要调用的方法,java,spring,spring-boot,pagination,option,Java,Spring,Spring Boot,Pagination,Option,是否可以以某种方式更改下面的代码,以便在没有提供状态值的情况下,返回存储在数据库中的所有PaymentLog对象,而不是仅返回状态与404相等的对象?基本上,如果没有提供status变量来调用服务层中的另一个方法logService.getAllPaymentLogs() 及 @覆盖 公共页面getPaymentLog(int状态,可分页){ return paymentLogRepository.getAllByStatus(状态,可分页); } @123回答了评论环节中的问题: status
状态
值的情况下,返回存储在数据库中的所有PaymentLog对象,而不是仅返回状态与404
相等的对象?基本上,如果没有提供status
变量来调用服务层中的另一个方法logService.getAllPaymentLogs()
及
@覆盖
公共页面getPaymentLog(int状态,可分页){
return paymentLogRepository.getAllByStatus(状态,可分页);
}
@123回答了评论环节中的问题:
status.map(s -> getPaymentLog(s, page)).orElseGet(() -> getPaymentLog(page))
您的
paymentLogRepository
是否有类似于getAll()
?status.map(s->getPaymentLog(s,page)).OrelGet(()->getPaymentLog(page))
?谢谢。“s”是“status”的值,我假定。@Dc235是的,在lambda中可以随意调用它,它只是可选函数中的元素
@Override
public Page<PaymentLog> getPaymentLog(Pageable pageable) {
return paymentLogRepository.getAllBy(pageable);
}
@Override
public Page<PaymentLog> getPaymentLog(int status, Pageable pageable) {
return paymentLogRepository.getAllByStatus(status, pageable);
}
status.map(s -> getPaymentLog(s, page)).orElseGet(() -> getPaymentLog(page))