Как видите, у меня есть метод FindbyId, который не работает. Хотя метод Findall работает совершенно нормально. < /P>
Вот сообщение об ошибке, которое я получаю: < /p>
java.lang.Error: Unresolved compilation problems:
Optional cannot be resolved to a type
The method findById(Integer) from the type CrudRepository refers to the missing type Optional
< /code>
Я в замешательстве, потому что я использую необязательный класс обертки в других сообщениях StackedOverflow, а также учебник, по которым я следую. Есть идеи, что я делаю не так?package Spring.RestProject.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import Spring.RestProject.entity.Employee;
public interface EmployeeRepository extends JpaRepository {
}
< /code>
employeserservice.java
package Spring.RestProject.service;
import java.util.List;
import Spring.RestProject.entity.Employee;
public interface EmployeeService {
Employee findById(int id);
List findAll();
}
< /code>
employeeServiceImpl.java
package Spring.RestProject.service;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import Spring.RestProject.entity.Employee;
import Spring.RestProject.repository.EmployeeRepository;
@Service
public class EmployeeServiceImpl implements EmployeeService {
EmployeeRepository employeeRepository;
@Autowired
public EmployeeServiceImpl (EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Override
public Employee findById(int id) {
Optional result = employeeRepository.findById(id);
Employee theEmployee;
if(result.isPresent()) {
theEmployee = result.get();
} else {
return null;
}
return theEmployee;
}
@Override
public List findAll() {
return employeeRepository.findAll();
}
}
< /code>
controller.java
package Spring.RestProject.restcontroller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import Spring.RestProject.entity.Employee;
import Spring.RestProject.service.EmployeeService;
@RestController
@RequestMapping("/api")
public class Controller {
EmployeeService employeeService;
@Autowired
public Controller (EmployeeService employeeService) {
this.employeeService = employeeService;
}
@GetMapping("/employees/{id}")
public Employee findById(@PathVariable int id) {
return employeeService.findById(id);
}
@GetMapping("/employees")
public List findAll () {
return employeeService.findAll();
}
}
< /code>
pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.4.2
Spring
RestProject
0.0.1-SNAPSHOT
RestProject
Demo project for Spring Boot
23
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
true
com.mysql
mysql-connector-j
runtime
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
Подробнее здесь: https://stackoverflow.com/questions/794 ... for-option
Springboot: JparePository findbyId не работает? Даже после учета дополнительного класса обертки ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение