KeyValue

Spring Data KeyValue 提供了轻松配置和访问类似 Map 的结构的功能,这些结构将值与唯一键相关联。它提供了低级和高级抽象,用于与基础数据结构交互,让用户不必担心基础设施问题。 Spring Data Key Value 中的键值抽象需要一个 Adapter,它可以屏蔽原生存储实现,让 KeyValueTemplate 可以基于任何键值对结构进行工作。键分布在 key-value.keyspaces。除非另行指定,否则类名用作实体的默认键空间。以下接口定义显示了 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.

}
1 插入给定实体并分配 ID(如果需要)。
2 Updates the given entity.
3 移除所有匹配类型的实体。
4 返回给定类型与其匹配 ID 的实体。
5 返回所有匹配类型的实体。
6 返回一个 List 的所有实体,这些实体的给定类型符合查询的条件。

Keyspaces

键空间定义了应在其中保留实体的数据结构的一部分。该概念类似于 MongoDB 和 Elasticsearch 中的集合、Solr 中的内核以及 JPA 中的表。默认情况下,实体的键空间是从其类型中提取的,但你也可以将不同类型的实体存储在一个键空间内。