我在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;
}
现在,除非我不对重做的实际数据加上 索引 ,否则List<Employee> findByAddresses_City(String city);
不会获取结果。
我该怎么做?我无法清除现有数据并创建新数据。有任何快速帮助吗?