KeyValue
Spring Data KeyValue 提供易于配置和访问类似 Map 的结构,这些结构将值与唯一键关联。它提供用于与底层数据结构交互的低级别和高级别抽象,使用户无需关注基础设施问题。
Spring Data Key Value 中的键值抽象需要一个 Adapter,用于屏蔽原生存储实现,使 KeyValueTemplate 能够在任意类键值对结构之上工作。Keys 分布在 Keyspaces 中。除非另有指定,否则使用类名作为实体的默认 keyspace。以下接口定义展示了 KeyValueOperations 接口,它是 Spring Data Key-Value 的核心:
interface KeyValueOperations {
<T> T insert(T objectToInsert); 1
void update(Object objectToUpdate); 2
void delete(Class<?> type); 3
<T> T findById(Object id, Class<T> type); 4
<T> Iterable<T> findAllOf(Class<T> type); 5
<T> Iterable<T> find(KeyValueQuery<?> query, Class<T> type); 6
//... more functionality omitted.
}
插入给定的实体,并在需要时分配 ID。
更新给定的实体。
删除所有匹配类型的实体。
返回给定类型中具有匹配 ID 的实体。
返回所有匹配类型的实体。
返回一个
List,包含给定类型中匹配查询条件的所有实体。
Keyspaces
Keyspaces 定义了实体应当保存在数据结构中的哪个部分。这一概念类似于 MongoDB 和 Elasticsearch 中的 collections、Solr 中的 cores,以及 JPA 中的 tables。默认情况下,实体的 keyspace 由其类型提取,但你也可以在一个 keyspace 中存储不同类型的实体。