@GetMapping(value = "/{id}")
public Student findById(@PathVariable final int id) {
Optional<Student> optionalStudent = studentJpaRepository.findById(id);
return (optionalStudent.isPresent()) ? optionalStudent.get():null;
}
我已经调试并看到了有趣的结果。 除非我使用studentJpaRepository.findAll()成功返回学生列表,否则studentJpaRepository.findById(id)始终返回Optional.empty。
存储库为
@Component
public interface StudentJpaRepository extends JpaRepository<Student, Integer>{
Student findByLastname(String lastname);
}
但是一旦使用了studentJpaRepository.findAll(),则调用studentJpaRepository.findById(id)似乎可以正常工作。 Db正在休眠,FindAll调用将其激活,然后其他调用也可以工作。 这是缓存问题吗?
使用的DB:MS SQL