Я использую Spring кеш с реализацией Redis, у меня есть следующий метод
@Async
@Cacheable(key = "#id")
public Future<Student> getStudent(String id){
Student stu = ...;
return new AsyncResult<>(stu);
}
Когда я впервые посещаю метод, данные кэшируются в redis в формате json.
но когда я посещаю его во второй раз, возникает какая-то ошибка, подобная этой:
java.util.concurrent.ExecutionException: org.springframework.data.redis.serializer.SerializationException: Невозможно прочитать JSON: Невозможно создать экземпляр org.springframework.scheduling.annotation.AsyncResult
(нет создателей, таких как конструкция по умолчанию, не существует): невозможно десериализовать из Object значение (без создателя на основе делегатов или свойств)
[EDIT]
Я нашел обходной путь: новый MyAsyncReslt.java, который расширяет AsyncResult и добавляет NoArgsContructor.