Я использую Redisson (3.11.4) с пружинной загрузкой (2.1.5) для хранения java объектов.
Мой POJO выглядит следующим образом.
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@REntity
public class ParentRecord {
@RId
private String id;
private String type;
private String root;
private Map<String, String> children;
}
И затем я go включаю, чтобы сохранить свои данные, используя merge
.
liveObjectService.merge(parentRecord);
messageKeyCache.put(parentRecord.getId(), parentRecord.getId(), 60, TimeUnit.SECONDS);
. После объединения я вижу два ключа, один из которых - фактические данные. redisson_live_object:{223334343322}:com.memorystore.schema.ParentRecord:id:java.lang.String
, а другой - redisson_live_object_field:{223334343322}:com.memorystore.schema.ParentRecord:children:org.redisson.RedissonMap
Я могу удалить первый ключ, выполнив liveObjectService.delete(ParentRecord.class, someId);
, но второй ключ не удаляется. Разве он не должен быть удален при удалении первого ключа? Если нет, то как мне его удалить?