У меня есть данные ниже в Redis
, и я Address
как класс модели, который имеет два поля street
и city
.У меня есть данные, которые имеют @Indexed
в street
полях, а redis содержит только индексированные данные на улице.Теперь я хочу применить @Indexed
к данным, присутствующим в данных Redis.Как я могу это сделать?
127.0.0.1:6379> KEYS *
1) "employees:d15be3e8-7662-40bb-ac4e-7b000e6391ec"
2) "employees:d15be3e8-7662-40bb-ac4e-7b000e6391ec:idx"
3) "employees:id:d15be3e8-7662-40bb-ac4e-7b000e6391ec"
4) "employees"
5) "employees:addresses.street:ABC Street"
6) "employees:addresses.street:XYZ Street"
В модельном классе я применил @Indexed
к city
, теперь моё моделирование становится таким:
Address.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Address {
@Indexed
private String street;
@Indexed
private String city;
}
Employee.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@RedisHash("employees")
public class Employee {
@Id @Indexed
private String id;
private String firstName;
private String lastName;
private List<Address> addresses;
}
Теперь, если я не добавлю индексирование на фактические данные Redis, List<Employee> findByAddresses_City(String city);
не делаетt получает результат.
Как я могу это сделать?Я не могу стереть существующие данные и создать новые.Любая быстрая помощь?
Ссылка: https://jira.spring.io/browse/DATAREDIS-894