findById(id)在第一次遇到时返回Null,但在使用findAll()方法后可以工作

时间:2020-04-21 12:02:57

标签: java spring-boot

   @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

0 个答案:

没有答案