每当我们希望从多个键检索数据时,我们都会选择依赖数据库。我有一个类(class)购物车,如图所示:
@Data
public class Cart {
private String cartId;
private String restaurantId;
private String userId;
@NotNull
private String deviceId;
private Map<String, Integer> items;
}
我想使用 userId 或 deviceId 检索我的购物车。在 RDBMS 中,方法是声明 deviceId(主键)和 userId(唯一键),这足以让我使用其中任何一个有效地检索购物车。
是否有一种干净的方法可以使用 Guava 或其他缓存来实现此目的?通过干净,我希望它是缓存中提供的一流构造,这样我就不必在它周围编写包装器来使用。
最佳答案
使用 Guava 执行此操作的最简洁方法是使用两个缓存,一个通过 deviceId 查找,一个通过 userId 查找。
我不知道您是否认为这足够干净,但我认为这是最好的类型安全解决方案。
关于java - 如何使用带有二级索引键的 Guava Cache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75888240/