首页 > 解决方案 > 方法 orElseThrow(() -> {}) 未为 Page 类型定义

问题描述

这是一个小项目的服务实现类。我在 lambda 函数上遇到了一些错误。首先我没有错误地编写了 Lambda 函数,但当时变量“字符串数据类型中的 cId”然后我更改为“Long”。

代码如下所述。错误在哪里

The method orElseThrow(() -> {}) is undefined for the type Page<Categories>

首先感谢和问候。请帮助我修复错误。

package com.snipe.giftplanner.services;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

import com.snipe.giftplanner.exception.ResourceNotFoundException;
import com.snipe.giftplanner.model.Categories;
import com.snipe.giftplanner.repository.CategoriesRepository;

@Service
@Transactional
public class CategoriesServicesImpl {

@Autowired
private CategoriesRepository crepo;

public Categories createCategory(Categories category) {
    return crepo.save(category);
}
public Page<Categories> getAllCategory(Pageable pageable) {
    return crepo.findAll(pageable);
}
public ResponseEntity<?> getCategory(Long cId) {
    return crepo.findById(cId).map(category -> { 
        crepo.getOne(cId);
    return ResponseEntity.ok().build();
    }).orElseThrow(() -> new ResourceNotFoundException("cId " + cId + " not found"));   
}
public ResponseEntity<?> deleteCategory(Long cId) {
    return crepo.findById(cId).map(category -> {
        crepo.delete(category);
        return ResponseEntity.ok().build();
    }).orElseThrow(() -> new ResourceNotFoundException("cId " + cId + " not found"));
}
public Categories updateCategory(Long cId,Categories categoryRequest) {
    return crepo.findById(cId).map(category -> {
        category.setCname(categoryRequest.getCname());
        category.setDescription(categoryRequest.getDescription());
        return crepo.save(category);
    }).orElseThrow(() -> new ResourceNotFoundException("CID " + cId + " not found"));
}
public void deleteAllCategory() {
     crepo.deleteAll();      
}   
public Categories findByCname(String cname) {
    Categories obj = crepo.findByCname(cname);
    return obj; 
}
}

标签: javaeclipsespring-bootjpa-2.0hibernate-mapping

解决方案


推荐阅读