Spring @ RedisHa sh findAll () возвращает нулевые значения - PullRequest
0 голосов
/ 17 июня 2020

Я использую Redis для хранения студентов с помощью объекта:

@RedisHash("Student")
public class Student implements Serializable {
    @Id
    private Long id;
    @Indexed
    private String name;
    private Integer age;
    // getters
    // setters
    // Constructor with full parameters
}

и репозитория:

@Repository
public interface StudentRepository extends CrudRepository<Student, Long> {
}

Я могу сохранить список студентов в базе данных Redis и получить этот список без любая ошибка:

@Autowired
StudentRepository repo;

List<Student> students = new ArrayList<>();
Student student1 = new Student(........);
students.add(student1);
Student student2 = new Student(........);
students.add(student2);
repo.findAll().forEach(){
    System.out.println(student);
}

Проблема в том, что когда другой мой проект (я создаю приложения с микросервисной архитектурой), я использую функцию findAll() для получения этого списка студентов, она возвращает список из двух null элементов. Если я использую findByName(String name), он все равно возвращает желаемый результат.

Любой, кто сталкивался с этой проблемой, может мне помочь, заранее спасибо?

1 Ответ

0 голосов
/ 18 июня 2020

Оказывается, мой Student класс в другом проекте имеет такое же @RedisHash("Student"), но другое полное имя класса (то же имя класса, но другой пакет). Я думаю, что эта проблема связана с библиотекой.

Обновлено : причина @RedisHash не работает так, как ожидалось, я нашел способ: это добавление @TypeAlias("Student") к сущности Student, поэтому вы можете разместить Student в любом месте исходного кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...