Auto generating keys

本章节描述了如何使用内置机制自动生成 Couchbase 文档键。支持两种类型的自动生成策略。

Couchbase 支持的最大键长度为 250 字节。

Configuration

要自动生成的键应使用 @GeneratedValue 进行注释。默认策略为 USE_ATTRIBUTES。可以作为实体本身的一部分提供键的前缀和后缀,这些值不会持久化,它们仅用于键生成。前缀和后缀使用 order 值进行排序。默认顺序为 0,多个没有顺序的前缀将覆盖上一个。如果 id 的值已经可用,则将跳过自动生成。连接符可以使用 delimiter 提供,默认连接符为“.”。

Example 1. Annotation for 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;
     ...
}

Key generation using attributes

使用文档属性的组合来生成密钥是一种常见的做法。使用属性生成密钥会基于提供的排序(类似于前缀和后缀)连接所有带 IdAttribute 注释的属性值。

Example 2. Annotation for IdAttribute
@Document
public class User {
     @Id @GeneratedValue(strategy = USE_ATTRIBUTES)
     private String id;
     @IdAttribute
     private String userid;
     ...
}

Key generation using uuid

这种自动生成使用 UUID 随机生成器生成消耗 16 个字节键空间的文档键。此机制仅适用于测试框架。

Example 3. Annotation for Unique key generation
@Document
public class User {
     @Id @GeneratedValue(strategy = UNIQUE)
     private String id;
     ...
}