KeyValue

Spring Data KeyValue は、値を一意のキーに関連付ける Map のような構造への簡単な構成とアクセスを提供します。基盤となるデータ構造と対話するための低レベルと高レベルの両方の抽象化を提供し、ユーザーをインフラストラクチャの関心事から解放します。

Spring Data Key Value 内のキーと値の抽象化には、ネイティブストアの実装を保護する Adapter が必要で、KeyValueTemplate がキーと値のペアのような構造の上で動作できるようになります。キーはキースペース全体に分散されます。特に指定しない限り、クラス名はエンティティのデフォルトのキースペースとして使用されます。次のインターフェース定義は、Spring Data Key-Value の中心である KeyValueOperations インターフェースを示しています。

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 のテーブルに似ています。デフォルトでは、エンティティのキースペースはその型から抽出されますが、1 つのキースペース内に異なる型のエンティティを格納することもできます。