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

Java Couchbase-自动生成带有用户定义后缀的密钥,java,spring-boot,couchbase,spring-webflux,Java,Spring Boot,Couchbase,Spring Webflux,我想使用SpringBootJava在couchbase中保存一个employee对象。我使用的是反应式couchbase驱动程序。我的要求是保存employeeId后缀为硬编码字符串“-EMPLOYEETYPE”的employee对象 例如: 对象从Java应用程序发送到couchbase: { "employeeId" : "12345", "lname" :"ltest", "fname" : "ftest"} 当保存到coach base时,密钥应该像 "12345-EMPLOYEET

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

例如: 对象从Java应用程序发送到couchbase:

{ "employeeId" : "12345", "lname" :"ltest", "fname" : "ftest"}
当保存到coach base时,密钥应该像

"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";
}

参考文档:

“下面的代码行得通吗?”-onSO,提问的海报应该说明他们的代码是否行得通和/或哪些代码不起作用。你试过你的密码吗?@ErwinBolwidt,为此道歉。它不起作用。我现在已经编辑了我的帖子。你能告诉我,id是否是一个自动递增的数字吗?还是couchDB序列?@user\u D\u a\uuuu,这里我不想用自动递增或序列生成id。我想基于employeeId创建一个带有后缀的密钥。这里输入本身的employeeId是唯一的。我需要添加后缀的原因是,couchbase将所有类型(员工、地址等)的文档放入一个bucket中。可能存在employeeId和addressId冲突的情况。为了避免这种情况,我想添加一个与对象类型相关的后缀。