Couchbase - 自动生成带有用户定义后缀的密钥

Couchbase - Auto generate key with user defined suffix

我想使用 spring boot java 在 couchbase 中保存一个员工对象。我正在使用反应式 couchbase 驱动程序。我的要求是保存 employeeId 后缀为硬编码字符串“-EMPLOYEETYPE”的员工对象。

示例: 对象来自 Java 应用程序:

{ "employeeId" : "12345", "lname" :"ltest", "fname" : "ftest"}

保存到沙发底座时,密钥应该像

一样生成
"12345-EMPLOYEETYPE"

以下代码无效,请指导我如何实现它。 注意:我使用的是 lombok,所以没有 getter 和 setter。

@Document
public final class Employee {

        @Id @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES,delimiter="-EMPLOYEETYPE")
        private String id;

        @IdAttribute
        private String employeeId;
}

找到解决办法。我们需要创建一个实例变量,并为其分配后缀字符串文字,并使用@IdSuffix 进行注释。 (对于前缀,@IdPrefix)。此字段不会持久化到 couchbase 中,仅用于生成文档的 id。

@Document
public final class Employee {

    @Id @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES,delimiter="-")
    private String id;

    @IdAttribute
    private String employeeId;

    @IdSuffix
    private String suffix = "EMPLOYEETYPE";
}

参考文档:https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/#couchbase.autokeygeneration.configuration