KeyValue

Spring Data KeyValue 提供了对 Map 之类的结构的简单配置和访问,这些结构将值与唯一键关联起来。它提供了用于与底层数据结构交互的低级和高级抽象,从而使用户免于基础设施方面的担忧。

Spring Data Key Value 中的键值抽象需要一个Adapter来屏蔽原生存储实现,从而使KeyValueTemplate能够在任何键值对结构之上工作。键分布在键空间中。除非另有说明,否则类名用作实体的默认键空间。以下接口定义显示了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 更新给定的实体。
3 删除所有匹配类型的实体。
4 返回具有匹配 ID 的给定类型的实体。
5 返回所有匹配类型的实体。
6 返回一个包含所有匹配查询条件的给定类型实体的List

键空间

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