键值对

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 中的表。默认情况下,实体的键空间是从其类型中提取的,但您也可以在一个键空间中存储不同类型的实体。