跳到主要内容

自动生成密钥

ChatGPT-4o-mini 中英对照 Auto generating keys

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

备注

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;
...
}
java

使用属性生成密钥

使用文档属性的组合生成键是一个常见的做法。使用属性生成键会将所有标注有 IdAttribute 的属性值连接起来,基于类似前缀和后缀的顺序进行排列。

示例 2. IdAttribute 的注释

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

使用 uuid 进行密钥生成

此自动生成使用 UUID 随机生成器生成文档键,消耗 16 字节的键空间。此机制仅建议用于测试搭建。

示例 3. 唯一键生成的注释

@Document
public class User {
@Id @GeneratedValue(strategy = UNIQUE)
private String id;
...
}
java