キーの自動生成

この章では、組み込みメカニズムを使用して couchbase ドキュメントキーを自動生成する方法について説明します。サポートされている自動生成戦略は 2 種類あります。

couchbase でサポートされるキーの最大長は 250 バイトです。

構成

自動生成されるキーには @GeneratedValue のアノテーションを付ける必要があります。デフォルトの戦略は USE_ATTRIBUTES です。キーのプレフィックスとサフィックスはエンティティ自体の一部として提供できます。これらの値は永続化されず、キーの生成にのみ使用されます。プレフィックスとサフィックスは、order 値を使用して順序付けされます。デフォルトの順序は 0 で、順序のない複数のプレフィックスは前のプレフィックスを上書きします。id の値がすでに使用可能な場合、自動生成はスキップされます。連結の区切り文字は delimiter を使用して指定できます。デフォルトの区切り文字は . です。

例 1: GeneratedValue のアノテーション
@Document
public class User {
     @Id @GeneratedValue(strategy = USE_ATTRIBUTES, delimiter = ".")
     private String id;
     @IdPrefix(order=0)
     private String userPrefix;
     @IdSuffix(order=0)
     private String userSuffix;
     ...
}

属性を使用した鍵の生成

ドキュメント属性の組み合わせを使用してキーを生成するのが一般的です。属性を使用したキー生成では、プレフィックスやサフィックスと同様に提供された順序に基づいて、IdAttribute でアノテーションが付けられたすべての属性値が連結されます。

例 2: IdAttribute のアノテーション
@Document
public class User {
     @Id @GeneratedValue(strategy = USE_ATTRIBUTES)
     private String id;
     @IdAttribute
     private String userid;
     ...
}

uuid を使用したキーの生成

この自動生成では、UUID ランダムジェネレーターを使用して、16 バイトのキースペースを消費するドキュメントキーを生成します。このメカニズムは、テストスキャフォールディングにのみ推奨されます。

例 3: 一意のキー生成のためのアノテーション
@Document
public class User {
     @Id @GeneratedValue(strategy = UNIQUE)
     private String id;
     ...
}