自动生成密钥
本章描述了如何使用内建机制自动生成 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;
...
}
使用属性生成密钥
使用文档属性的组合生成键是一个常见的做法。使用属性生成键会将所有标注有 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;
...
}