#java #spring-boot #redis #spring-data-redis
#java #весенняя загрузка #redis #spring-data-redis
Вопрос:
У меня проблема с сохранением данных в хранилище Redis. Redis настроен в dockerized. Я должен упомянуть, что соединение с Redis успешно открыто, и запрос данных работает отлично — проблем вообще нет, но когда я пытаюсь сохранить данные, возникает исключение, описанное ниже.
Исключение:
org.springframework.data.keyvalue.core.UncategorizedKeyValueException: nested exception is java.lang.NullPointerException
at org.springframework.data.keyvalue.core.KeyValuePersistenceExceptionTranslator.translateExceptionIfPossible(KeyValuePersistenceExceptionTranslator.java:49)
at org.springframework.data.keyvalue.core.KeyValueTemplate.resolveExceptionIfPossible(KeyValueTemplate.java:484)
at org.springframework.data.keyvalue.core.KeyValueTemplate.execute(KeyValueTemplate.java:379)
at org.springframework.data.keyvalue.core.KeyValueTemplate.update(KeyValueTemplate.java:209)
at org.springframework.data.keyvalue.repository.support.SimpleKeyValueRepository.save(SimpleKeyValueRepository.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Модель:
@RedisHash("TaskSubscriber")
public class TaskSubscriber implements Serializable {
private static final long serialVersionUID = 20190329202800L;
private String id;
private String destination;
private String username;
@SuppressWarnings("unused")
public TaskSubscriber() { }
public TaskSubscriber(String sessionId, String destination, String username)
{
this.id = sessionId;
this.destination = destination;
this.username = username;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
Репозиторий:
@Repository
public interface TaskSubscriberRepository extends JpaRepository<TaskSubscriber, String> {
List<TaskSubscriber> findAllByDestination(String destination);
List<TaskSubscriber> findAllByUsername(String username);
}
В классе обслуживания я просто вызываю метод save из репозитория TaskSubscriber, передавая модель TaskSubscriber с данными.
У кого-нибудь есть идея, как это исправить? Заранее благодарю вас.
Комментарии:
1. Есть ли у исключения основная причина (причины). Похоже, что в нем может не хватать данных.
2. Вот полная трассировка стека: heypasteit.com/clip/0IS923
3. Какую версию Spring Boot вы используете?
4. Весенняя загрузка — 1.4.0.ВЫПУСК Redis-Client: 2.9.0 весенняя загрузка-starter-data-redis: 2.0.6.ВЫПУСК
5. Весенняя загрузка 1.4.0, но Redis Starter 2.0.6? Я бы подумал, что обе они должны быть одной и той же версии, нет?