KeyValue

Spring Data KeyValue 提供了簡易的組態設定和存取類似 Map 的結構,這些結構將值與唯一鍵關聯。它提供了低階和高階抽象概念,用於與底層資料結構互動,讓使用者擺脫基礎架構的考量。

Spring Data Key Value 中的鍵值抽象概念需要一個 Adapter,以屏蔽原生儲存實作,讓 KeyValueTemplate 可以在任何類似鍵值對的結構之上運作。鍵會分散在 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.

}
1 插入給定的實體並指派 ID (如果需要)。
2 更新給定的實體。
3 移除所有符合類型的實體。
4 傳回符合類型的實體及其相符的 ID。
5 傳回所有符合類型的實體。
6 傳回符合查詢條件之給定類型之所有實體的 List。

Keyspaces

Keyspaces 定義了應保留實體之資料結構的部分。此概念類似於 MongoDB 和 Elasticsearch 中的集合 (collections)、Solr 中的核心 (cores) 以及 JPA 中的表格 (tables)。預設情況下,實體的 keyspace 是從其類型中提取的,但您也可以在一個 keyspace 中儲存不同類型的實體。