java - Couchbase - 自动生成带有用户定义后缀的 key

标签 java spring-boot couchbase spring-webflux

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

例子: 从 Java 应用程序到 couchbase 的对象:

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

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

"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

关于java - Couchbase - 自动生成带有用户定义后缀的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54684482/

相关文章:

java - JBOSS部署报错javax.management.InstanceNotFoundException

java - spring-boot-starter-jta-atomikos 实践

Spring Boot 应用程序失败,退出代码为 0

asp.net-mvc - SessionProvider 的 Couchbase 存储桶与 Memcached 存储桶

java - 安装河马 CMS : NullPointerException with essentials webapp

java - 使用反射传递 Double 类型的参数

java - 从 ArrayList 中查询字符串的一部分

couchbase - 在 Spring-data-Couchbase 中将 Document 直接保存为 id 值

java - 在 Primefaces 上注销前咆哮

java - Spring Boot : Unable to read resources in lib/*. jar 使用 lib/*.jar 中的类