У нас есть Студенческая организация и внедрен кеш.Мы выполняем вставку записи только тогда, когда запись не найдена в базе данных.
С первого раза все работает нормально, так как запись в БД отсутствует.Но во второй раз, если мы повторно отправим тот же запрос, он извлекает сущность студента из кэша и возвращает ноль.(В БД он существует) и, следовательно, попытаться повторно вставить эти данные и завершится неудачно с уникальным ограничением.
Может кто-то помочь, как очистить / обновить кэш в этом случае.
Фрагмент кода репозитория:
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
@Cacheable(cacheNames="StudentCache", cacheManager="DepartmentCacheManager", sync=true)
Student findByStudentId(String StudentId);
}
Фрагмент кода сервиса
Student student = studentRepository.findByStudentId(studentId);
if (student == null) {
student= createStudentObject(studentId);
studentRepository.save(student);
}